Obtenir la Forme la plus Proche d'un Élément en jQuery

J'ai ce js/jquery script que j'ai écrit pour vérifier tous les checboxes avec un formulaire. Il fonctionne bien, mais il contrôle toutes les cases qui sont sur la page, indépendamment de la forme wrapper ils sont.

ici est la fonction

function toggleCheck(state)
{   var checkboxes = jQuery("form input:checkbox");
if(state==true){checkboxes.prop('checked',true); }
if(state==false){ checkboxes.prop('checked',false); }
}

utilisation

<a id="check" href="#" onclick="javascript:toggleCheck(true);" class="btn">Select All</a>
<a id="uncheck" href="#" onclick="javascript:toggleCheck(false);" class="btn">Deselect All</a>

Remarque cela fonctionne bien, mais mon problème est que si je dois

 <form action="myaction-page">//some form elements and checkboxes </form>

et

<form action="myaction-page-2">//some form elements and checkboxes </form>

et j'cliquez sur le lien tout en form1, toutes les cases obtient chèque, y compris ceux dans form2.

Est-il un moyen de les séparer sans introduire de la forme id ou les noms?..c'est parce que j'ai largement utilisé dans le code de production et de réécrire le tout aura des problèmes.

Toute Aide sera grandement appréciée.

P. S il est intéressant de noter que le tout sélectionner et désélectionner tous sont dans les deux formes et deux formes sont sur la même page.

Sont vos "sélectionner tout" et "tout désélectionner" cases à cocher dans les formulaires?
Pourquoi avez-vous si l'instruction? checkboxes.prop('checked',state);
oui tout sélectionner et désélectionner tous sont dans les deux formes....ils sont supposons qu'à sélectionner en fonction de la forme sous laquelle ils appartiennent
sauf si l'état n'est pas défini
Il dit qu'ils sont inutiles. if (someBool == true) { doSomething(true); } else if (someBool == false) { doSomething(false); } est le même que doSomething(someBool);

OriginalL'auteur jcobhams | 2013-10-03