OVH Cloud OVH Cloud

probleme javascript

2 réponses
Avatar
julien
Bonjour
J'ai la form suivante dans une page (le code n'est pas de moi):
<form method=POST name='myform'
action='/search.mhtml?sid=sigs2-5d08a066c269d1c2ffcd52578cde352d'>

<table>
<tr>
<td><input type="checkbox" name="sites" value="bugtraq"
checked="checked" class="checkbox" />bugtraq</td>
<td><input type="checkbox" name="sites" value="cert" checked="checked"
class="checkbox" />cert</td>
</tr>
<tr>
<td><input type="checkbox" name="sites" value="bugtraq-list"
checked="checked" class="checkbox" />bugtraq-list</td>
<td><input type="checkbox" name="sites" value="cve" checked="checked"
class="checkbox" />cve</td>
</tr>
</table>

<p><a href="#" Onclick="check_all(document.forms[0].sites);">select all</a>
<a href="#" Onclick="uncheck_all(this.form.sites);">unselect all</a></p>
<p><input type=submit class=button value="Search"></p>
</form>


Et les fonctions javascript (entre les balises <head>)


function check_all(field) {
for (i = 0; i < field.length; i++) {
field[i].checked = true;
}

return false;
}

function uncheck_all(field) {
for (i = 0; i < field.length; i++) {
field[i].checked = false;
}
}

Avec Mozilla 1.6, j'ai l'erreur:
this.form has no properties (unselect all)
field has no properties (select all)

J'ai touné autoru du pot, essayer différentes choses, je ne trouve pas
la solution.

Julien

2 réponses

Avatar
julien a ecrit :

Bonjour
J'ai la form suivante dans une page (le code n'est pas de moi):
<form method=POST name='myform'
action='/search.mhtml?sid=sigs2-5d08a066c269d1c2ffcd52578cde352d'>

<p><a href="#" Onclick="check_all(document.forms[0].sites);">select all</a>



<a href="#" Onclick="check_all(document.forms['myform'],sites);
return false;">Cocher tout</a>

<a href="#" Onclick="uncheck_all(this.form.sites);">unselect all</a></p>



<a href="#" Onclick="uncheck_all(this.form.sites);
return false;">Tout dé-cocher</a>

<p><input type=submit class=button value="Search"></p>
</form>



Pas de lézard ...
tout ça fonctionne impec sur mon Moz 1.2 et même mon NC4.5 !

faire attention de ne pas avoir plusieurs forms sur la page
et puisque le form est nommé passer par son nom
ou préférer this.form
dans l'appel à la fonction coche_tout(this.form.sites);


--
******** (enlever/remove [OTER_MOI] du/from reply url) *******
Stéphane MORIAUX : mailto:
Aide aux Pages Perso (images & couleurs, formulaire, CHP, JS)
http://perso.wanadoo.fr/stephane.moriaux/internet/
**************************************************************
Avatar
Raphaël Wils
julien a écrit :
Bonjour
J'ai la form suivante dans une page (le code n'est pas de moi):
<form method=POST name='myform'
action='/search.mhtml?sid=sigs2-5d08a066c269d1c2ffcd52578cde352d'>

<table>
<tr>
<td><input type="checkbox" name="sites" value="bugtraq"
checked="checked" class="checkbox" />bugtraq</td>
<td><input type="checkbox" name="sites" value="cert" checked="checked"
class="checkbox" />cert</td>
</tr>
<tr>
<td><input type="checkbox" name="sites" value="bugtraq-list"
checked="checked" class="checkbox" />bugtraq-list</td>
<td><input type="checkbox" name="sites" value="cve" checked="checked"
class="checkbox" />cve</td>
</tr>
</table>

<p><a href="#" Onclick="check_all(document.forms[0].sites);">select all</a>
<a href="#" Onclick="uncheck_all(this.form.sites);">unselect all</a></p>
<p><input type=submit class=button value="Search"></p>
</form>


Et les fonctions javascript (entre les balises <head>)


function check_all(field) {
for (i = 0; i < field.length; i++) {
field[i].checked = true;
}

return false;
}

function uncheck_all(field) {
for (i = 0; i < field.length; i++) {
field[i].checked = false;
}
}

Avec Mozilla 1.6, j'ai l'erreur:
this.form has no properties (unselect all)
field has no properties (select all)

J'ai touné autoru du pot, essayer différentes choses, je ne trouve pas
la solution.

Julien



Il est possible que le probleme soit du au fait que les boutons de type
checkbox doivent être indépendants les uns des autres et donc ne pas
avoir le meme attribut name.
donc à ta place je mettrait un name différent à chaque case et
j'utiliserait les évenements comme cela :
Onclick="check_all(document.myform);"
Onclick="uncheck_all(document.myform);"

et pour les fonctions :

function check_all(field) {
for (i = 0; i < field.length; i++) {
field.elements[i].checked = true;
}

return false;
}

function uncheck_all(field) {
for (i = 0; i < field.length; i++) {
field.elements[i].checked = false;
}
}

Solution non testée...

--
Raphaël
http://www.r-wils.com/perso
« It don't mean a thing, if it ain't got that swing ! »