J'ai créé une page très simple pour tester votre problème:
<html>
<head>
<script type="text/javascript" src="prototype-1.6.0.3.js" ></script>
</head>
<body>
<form>
<input type="checkbox" id="test1" /> Test 1<br/>
<input type="checkbox" id="test2" /> Test 2<br/>
<input type="checkbox" id="test3" /> Test 3<br/>
<input type="checkbox" id="test4" /> Test 4<br/>
<input class="submit" type="button" value="check all" onclick="$(this.form).getInputs('checkbox').each(function (elem) {elem.checked = true;});" />
</form>
</body>
</html>
& cela fonctionne bien pour moi dans Firefox 3.0.8 (ainsi que IE) ...
Je suis en désaccord avec le d'autres réponses ... this.form devrait être bien (obtient l'objet de forme du bouton de soumission, qui devrait alors vous permettre d'obtenir les cases à cocher par getInputs).
Quel est le problème réel? Rien ne se passe du tout? Si oui, la seule chose que je peux penser est, sont les cases à cocher dans le même formulaire que le bouton?
EDIT: Si votre code est effectivement le même que celui ci-dessus & sa ne fonctionne pas, le meilleur que je peux suggérer est que vous tournez votre onclick en fonction propper appel & puis utilisez firebug pour travailler qui ISN bits spécifique ne travaille pas. C'est à dire. rendre votre code ressembler à ceci:
<html>
<head>
<script type="text/javascript" src="prototype-1.6.0.3.js" ></script>
<script type="text/javascript" >
function checkAll(button) {
var form = $(button.form);
var inputs = form.getInputs('checkbox');
inputs.each(function (elem) {
elem.checked = true;
});
}
</script>
</head>
<body>
<form>
<input type="checkbox" /> Test 1<br/>
<input type="checkbox" /> Test 2<br/>
<input type="checkbox" /> Test 3<br/>
<input type="checkbox" /> Test 4<br/>
<input class="submit" type="button" value="check all" onclick="checkAll(this)" />
</form>
</body>
</html>
Ensuite, vous pouvez mettre des points de rupture dans la fonction & assurez-vous que « bouton », « entrées » « forme » et sont ce que vous attendez d'être et que le « élém 'dans chaque boucle est aussi.
'this' devrait dans ce cas, reportez-vous au bouton soumettre, si Je suppose que 'this.form' n'est pas la bonne chose à utiliser. Mon intuition est = boj = est juste :) –
Je ne suis pas d'accord ... 'ceci' devrait être le bouton soumettre, donc 'this.form' devrait être le formulaire (en supposant que le bouton est à l'intérieur du formulaire), qui devrait contenir tout les entrées. – Alconja