jquery prop.(“désactivé”,true) ne fonctionne pas
Je suis en train de faire une simple activation et la désactivation de la case à cocher en fonction de l'état de l'autre case. Il censé être une tâche simple, mais j'ai de la difficulté sur la désactivation de la case à cocher, prop("désactivé", true) ne semble pas travailler. J'ai essayé en utilisant la prop("checked", vrai) et il fonctionne bien. Je suis vraiment frustré de la façon dont cette fonction n'est pas de travail. Veuillez voir le code ci-dessous pour référence.
HTML:
<div class="form-group question-option-block form-group ">
<label for="option[]" class="control-label">Options</label>
<div class="row" style="">
<div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="0" id="option[]"></div>
<div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
<div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
</div>
<div class="row" style="margin-top:20px;">
<div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="1" id="option[]"></div>
<div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
<div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
</div>
<div class="row" style="margin-top:20px;">
<div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="2" id="option[]"></div>
<div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
<div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
<div class="col-xs-2 col-md-1"><button class="btn btn-danger btn-flat remove-option">Remove</button></div>
</div>
<div class="row" style="margin-top:20px;">
<div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="3" id="option[]"></div>
<div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
<div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
<div class="col-xs-2 col-md-1"><button class="btn btn-danger btn-flat remove-option">Remove</button></div>
</div>
<div class="row" style="margin-top:20px;">
<div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="4" id="option[]"></div>
<div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
<div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
<div class="col-xs-2 col-md-1"><button class="btn btn-danger btn-flat remove-option">Remove</button></div>
</div>
<div class="row" style="margin-top:20px;">
<div class="col-xs-5 col-md-8"><input class="form-control question-option" name="option[]" type="text" value="5" id="option[]"></div>
<div class="col-xs-2 col-md-1"><input type="checkbox" class="open_ended_answers" name="open_ended_answers[]" value="1"> Open-ended </div>
<div class=" col-xs-2 col-md-1"> <input type="checkbox" class="required_open_answers" name="required_open_answers[]" value="1"> Required</div>
<div class="col-xs-2 col-md-1"><button class="btn btn-danger btn-flat remove-option">Remove</button></div>
</div>
Javascript:
$('.open_ended_answers').change(function() {
if($(this).is(":checked")) {
$(this).closest('.row').find(".required_open_answers").prop('disabled',false);
}
else{
$(this).closest('.row').find(".required_open_answers").prop('disabled',true);
$(this).closest('.row').find(".required_open_answers").prop('checked',false);
}
});
if(required_open_answers != null){
required_open_answers_input.each(function(i,val) {
if(required_open_answers[i] !== undefined) {
if(open_ended[i] == "1"){
$(this).prop("disabled", true);
}else{
$(this).prop("disabled", false);
}
if(required_open_answers[i] == "1"){
$(this).prop("checked",true);
}
}
});
}
merci à tous pour vos réponse. Il sera une très grande aide pour être en mesure de résoudre ce passer de ma tâche. Merci.
déposez votre html analysée ici
Est-ce le code à l'intérieur de la
Je suis sûr que $(this).prop("désactivé", true); fonctionne très bien. Êtes-vous sûr que le flux s'exécute à cette déclaration?
le premier code est pour le changement de gestionnaire. alors que la deuxième ligne de code est inclus dans le prêt gestionnaire pour la première exécution. Vérification des valeurs existantes.
Oui je suis sur, j'ai essayé de changer le code pour modifier un texte et d'exécuter des puits. Et je crois que $(this).prop("désactivé", true) fonctionne très bien cause que je l'ai utilisé à d'autres éléments d'entrée et il fonctionne parfaitement bien. Mais pour quelque raison il ne fonctionne pas sur ce domaine spécifique. Je ne suis pas sûr pourquoi.
Est-ce le code à l'intérieur de la
.change()
gestionnaire que vous demandez? Qu'est-ce que le deuxième bloc de code?Je suis sûr que $(this).prop("désactivé", true); fonctionne très bien. Êtes-vous sûr que le flux s'exécute à cette déclaration?
le premier code est pour le changement de gestionnaire. alors que la deuxième ligne de code est inclus dans le prêt gestionnaire pour la première exécution. Vérification des valeurs existantes.
Oui je suis sur, j'ai essayé de changer le code pour modifier un texte et d'exécuter des puits. Et je crois que $(this).prop("désactivé", true) fonctionne très bien cause que je l'ai utilisé à d'autres éléments d'entrée et il fonctionne parfaitement bien. Mais pour quelque raison il ne fonctionne pas sur ce domaine spécifique. Je ne suis pas sûr pourquoi.
OriginalL'auteur banri16 | 2016-10-18
Vous devez vous connecter pour publier un commentaire.
Pour jQuery 1.6+
Utilisateur peut utiliser .prop() fonction:
Pour jQuery 1.5 et au-dessous de
Vous devez utiliser
.attr()
et désactiver la case à cocheret pour l'activer à nouveau la case supprimer l'attribut entièrement):
En supposant que vous avez un gestionnaire d'événement sur une case à cocher, dans la version de jQuery vous pouvez utiliser la propriété suivante pour vérifier si votre case à cocher est activée ou non
Plus d'informations sur:
http://api.jquery.com/prop/#entry-longdesc-1
http://api.jquery.com/attr/
merci d'éditer votre question, l'ajout d'un jsfiddle html (inclus) où vous reproduire l'erreur, je serais heureux de vous aider à le résoudre.
Merci. J'ai inclus le code html dans ma question. J'ai essayé de reproduire l'erreur dans jsfiddle mais Il est difficile de reproduire depuis que je suis à l'aide de framework laravel. Essayé de code, mais ça marchait très bien. Je pense que c'est un problème dans le flux de code.
OriginalL'auteur GibboK
Si vous n'obtenez pas le résultat souhaité à l'aide de
prop("disabled", true)
, essayezvous avez la solution?
oui, c'est dans un changement de gestionnaire. Merci pour votre aide.
Ok c'est super.
OriginalL'auteur Prachi Bhandari
vous pouvez utiliser javascript au lieu
Ou, dans votre cas
OriginalL'auteur Tejasva Dhyani
Essayez ceci :
Remplacer ceci :
avec
OriginalL'auteur Harshil Shah
J'ai trouvé le problème. Il y a un changement de gestionnaire pour un document qui permet d'utiliser toutes les entrées qui remplace mon script. J'ai changé ce code
à
ChangeOption() comprennent les processus de l'activation de tous les éléments d'entrée. Je vous remercie beaucoup pour votre aide.
OriginalL'auteur banri16