en utilisant jquery, je veux faire une sélection dans une case de sélection requise (c'est-à-dire qu'elle ne peut pas être laissée par défaut en blanc) si une case à cocher particulière est cochée. Mon code:
$(document).ready(function(){
$("#myForm").validate({
rules: {
myDropDown: {
required: {
depends: function(element) {
return $("#myCheckbox:checked")
}
}
}
}
})
})
Le html:
<input type="checkbox" name="myCheckbox" id="myCheckbox" value="1">
<select name="myDropDown" id="myDropDown">
<option value="" selected></option>
<option value="1">Choice 1</option>
<option value="2">Choice 2</option>
<option value="3">Choice 3</option>
</select>
Non seulement le code ne fonctionne pas, mais il jette les onglets jquery que j'ai comme section suivante de javascript.
Tout conseil apprécié.
Edit: Maintenant que j'ai trié tous mes crochets, le comportement est maintenant de faire de la case de sélection un champ obligatoire, que la case soit cochée ou non - c'est-à-dire que la partie dépend ne fonctionne pas. Autre javascript sur la page fonctionne maintenant bien.
Veuillez essayer comme ceci
$(document).ready(function(){
$("#myForm").validate({
rules: {
myDropDown:{
required: function (element) {
if($("#myCheckbox").is(':checked')){
var e = document.getElementById("myDropDown");
return e.options[e.selectedIndex].value=="" ;
}
else
{
return false;
}
}
}
}
});
});
il devrait pouvoir fonctionner comme ça:
rules : {
myDropDown:{required:"#myCheckbox:checked"}
}
Ça fonctionne super bien
inputname:
{
required: function(){
if($("select[name=inputname]").val() == 1){
return true;
}
else
{
return false;
}
}
}
Vous pouvez modifier le nom d'entrée à votre préférence.
Pour le changer en champ de saisie, vous pouvez changer la partie sélectionnée à saisir
Je ne sais pas quel plugin vous utilisez, mais
return $("#myCheckbox:checked")
renvoie un objet Jquery si votre case est cochée. Je pense qu'il serait plus correct de le faire:
return $("#myCheckbox").is(':checked')
qui renvoie vrai ou faux.
Peut-être que cela n'a rien à voir avec votre problème