La validation de plusieurs cases à l'aide de jQuery de validation
Je suis en train de prendre un certain nombre de cases à cocher et assurez-vous qu'au moins une de ces cases est vérifiée à l'aide de jQuery de validation. Je n'ai pas eu de chance jusqu'à présent. Ce qui me manque? Je sais que ma validation est là parce que cela fonctionne pour d'autres domaines, pas seulement pour mes cases à cocher. J'ai mis le code sur jfiddle, peut-être que cela aidera.
EDIT: j'ai ajouté entre parenthèses pour mon input name=paramètre de liste (liste[]). D'ailleurs dans mes règles, j'ai changé le nom du paramètre de la liste pour la liste[]'. Mon ancien code est ci-dessous. Grâce Sparky!
OLD: <input type='checkbox' name='list' id='fullProduct'></input>
FIXED: <input type='checkbox' name='list[]' id='fullProduct'></input>
Voici mon code.
$("#tradeForm").validate({
rules: {
startDate: {
required: true,
date: true
},
endDate: {
required: true,
date: true
},
showName: {
required: true,
minlength: 5
},
location: {
required: true
},
list: {
required: true
}
},
messages: {
startDate: "*",
endDate: "*"
}
});
<table>
<tr>
<th>Name of Show</th>
<td> <input type='text' name='showName'></input></td>
</tr>
<tr>
<th>Location</th>
<td><input type='text' name='location'></input></td>
</tr>
<tr>
<th><span style='padding-right: 50px;'>Select Literature</span></th>
<td><input type='checkbox' name='list' id='fullProduct'></input><span style='font-size: 12px;'>Guide One</span></td>
<td><input type='checkbox' name='list' id='oilProduct'></input><span style='font-size: 12px;'>Guide Two</span></td>
</tr>
<tr>
<td></td>
<td><input type='checkbox' name='list' id='diamondProduct'></input><span style='font-size: 12px;'>Guide Three</span></td>
<td><input type='checkbox' name='list' id='motorProduct'></input><span style='font-size: 12px;'>Guide Four</span></td>
</tr>
</table>
Le code HTML dans votre OP n'est pas le même que le code dans votre jsFiddle, qui est également la cause de votre problème.
name="list[]"
n'est pas le même que name="list"
.OriginalL'auteur wowzuzz | 2013-02-19
Vous devez vous connecter pour publier un commentaire.
La
name
de votre groupe de cases à cocher estlist[]
, paslist
, de sorte que vous devez déclarer la règle en tant que telle. Il contient des crochets,[]
, vous devez l'entourer de guillemets:Votre jsFiddle: http://jsfiddle.net/ZDz59/1/
Si votre formulaire est composé de champs à l'aide de noms qui ne sont pas légales JavaScript identifiants, vous devez citer ces noms lors de l'utilisation de l'option règles: Est-ce que vous parlez?
Oui, je fais référence à ceci: docs.jquery.com/Plugins/Validation/...
Pour modifier la position de l'étiquette de validation coup d'oeil ici: stackoverflow.com/questions/13200659/... Violon: jsfiddle.net/ZDz59/81
quel est votre commentaire ont à voir avec quoi que ce soit ici? La question est à propos d'un mal déclaré règle, pas de message de placement. Veuillez garder des commentaires pertinents. Merci.
OriginalL'auteur Sparky
Si vous avez l'intention seulement l'une des cases à coché en tout temps, utiliser input type="radio" à la place.
Si pas: essayez de changer le nom de l'attribut de cases à cocher pour liste[]. Car il y a plusieurs valeurs contrôlées, il doit inclure les crochets pour indiquer qu'il s'agit d'un tableau. Sinon, la valeur sera écrasée.
Essayez d'ajouter
minlength: 1
à la règle de liste.Vous pouvez ajouter une fonction de clic de décocher toutes les cases, mais celui qui vient d'être cliqué
J'ai ajouté le code sur jfiddle dans les modifications ci-dessus.
OriginalL'auteur kjetilh