Si la case est cochée, je n'ai besoin que d'obtenir la valeur 1; sinon, je dois le mettre à 0. Comment faire cela en utilisant jQuery?
$("#ans").val()
me donnera toujours un droit dans ce cas:
<input type="checkbox" id="ans" value="1" />
Si la case est cochée, je n'ai besoin que d'obtenir la valeur 1; sinon, je dois le mettre à 0. Comment faire cela en utilisant jQuery?
$("#ans").val()
me donnera toujours un droit dans ce cas:
<input type="checkbox" id="ans" value="1" />
Réponses:
Utilisez .is(':checked')
pour déterminer si elle est cochée ou non, puis définissez votre valeur en conséquence.
$("#ans").attr('checked')
vous dira si elle est cochée. Vous pouvez également utiliser un deuxième paramètre true / false pour cocher / décocher la case.
$("#ans").attr('checked', true);
Par commentaire, utilisez prop
plutôt que attr
lorsque disponible. Par exemple:
$("#ans").prop('checked')
Utilisez simplement $(selector).is(':checked')
Il renvoie une valeur booléenne.
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
La réponse de Stefan Brinkmann est excellente, mais incomplète pour les débutants (ignore l'affectation des variables). Juste pour clarifier:
// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;
Cela fonctionne comme ceci:
var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;
Exemple:
var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );
Alertes «non»
Si cela est utile, veuillez voter pour la réponse de Stefan Brinkmann.
Vous pouvez essayer ceci:
$('#studentTypeCheck').is(":checked");
J'ai déjà rencontré le même problème, j'espère que cette solution peut vous aider. tout d'abord, ajoutez un attribut personnalisé à vos cases à cocher:
<input type="checkbox" id="ans" value="1" data-unchecked="0" />
écrire une extension jQuery pour obtenir de la valeur:
$.fn.realVal = function(){
var $obj = $(this);
var val = $obj.val();
var type = $obj.attr('type');
if (type && type==='checkbox') {
var un_val = $obj.attr('data-unchecked');
if (typeof un_val==='undefined') un_val = '';
return $obj.prop('checked') ? val : un_val;
} else {
return val;
}
};
utilisez le code pour obtenir la valeur de la case à cocher:
$('#ans').realVal();
vous pouvez tester ici
Vous pouvez aussi utiliser:
$("#ans:checked").length == 1;
Utilisation:
$("#ans option:selected").val()
return
1
si elle est sélectionnée
function chkb(bool){
if(bool)
return 1;
return 0;
}
var statusNum=chkb($("#ans").is(':checked'));
statusNum sera égal à 1 si la case est cochée et à 0 si ce n'est pas le cas.
EDIT: Vous pouvez également ajouter le DOM à la fonction.
function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}
var statusNum=chkb($("#ans"));
J'ai récemment rencontré un cas dans lequel j'avais besoin de vérifier la valeur de la case à cocher lorsque l'utilisateur a cliqué sur le bouton. La seule manière appropriée de le faire est d’utiliserprop()
attribut.
var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;
cela a fonctionné dans mon cas, peut-être que quelqu'un en aura besoin.
Lorsque je l'ai essayé, je l'ai .attr(':checked')
renvoyé, checked
mais je voulais une valeur booléenne et une .val()
valeur d'attribut value
.
Il y a plusieurs options comme ...
1. $("#ans").is(':checked')
2. $("#ans:checked")
3. $('input:checkbox:checked');
Si toutes ces options renvoient true, vous pouvez définir la valeur avec précision.
Essaye ça
$('input:checkbox:checked').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
Ici, le drapeau est vrai s'il est vérifié sinon faux
var flag=$('#ans').attr('checked');
Encore une fois, cela fera cheked
$('#ans').attr('checked',true);
$("#id").prop('checked') === true ? 1 : 0;
Vérifiez d'abord que la valeur est vérifiée
$("#ans").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
var id = $(this).val()
}
});
Sinon, définissez la valeur 0