web-dev-qa-db-fra.com

Tester si une case à cocher est cochée avec jQuery

Si la case à cocher est cochée, alors je n'ai besoin que d'obtenir la valeur 1; sinon, je dois l'obtenir à 0. Comment puis-je utiliser jQuery?

$("#ans").val() me donnera toujours un droit dans ce cas:

<input type="checkbox" id="ans" value="1" />
565
Rajeev

Utilisez .is(':checked') pour déterminer si elle est cochée, puis définissez votre valeur en conséquence.

Plus d'informations ici.

983
Andy Mikula
$("#ans").attr('checked') 

vous dira si c'est coché. 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 au lieu de attr lorsque disponible. Par exemple:

$("#ans").prop('checked')
206
xaxxon

Il suffit d'utiliser $(selector).is(':checked') 

Il retourne une valeur booléenne. 

88
SimionBaws
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
54
Stefan Brinkmann

La réponse de Stefan Brinkmann est excellente, mais incomplète pour les débutants (omet l'affectation de variable). 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 vous aide, faites passer la réponse de Stefan Brinkmann à l'ordre du jour.

20
crashwap

Vous pouvez essayer ceci:

$('#studentTypeCheck').is(":checked");
17
MAnoj Sarnaik

J'ai déjà trouvé le même problème auparavant. J'espère que cette solution peut vous aider

<input type="checkbox" id="ans" value="1" data-unchecked="0" />

écrivez 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

15
alphakevin
$('input:checkbox:checked').val();        // get the value from a checked checkbox
7
nobody

Vous pouvez aussi utiliser:

$("#ans:checked").length == 1;
6
Fareed Alnamrouti
<input type="checkbox" id="ans" value="1" />

Jquery: var test= $("#ans").is(':checked') et renvoie true ou false.

Dans votre fonction:

$test =($request->get ( 'test' )== "true")? '1' : '0';
6
Rajesh RK

Il y a plusieurs options sont là 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.

4
Amit Maru
function chkb(bool){
if(bool)
return 1;
return 0;
}

var statusNum=chkb($("#ans").is(':checked'));

statusNum sera égal à 1 si la case à cocher est cochée et à 0 sinon.

EDIT: Vous pouvez également ajouter le DOM à la fonction.

function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}

var statusNum=chkb($("#ans"));
4
kmoney12

Utilisation:

$("#ans option:selected").val()
4

J'ai récemment eu affaire à un cas où j'avais besoin de vérifier la valeur d'une case à cocher lorsque l'utilisateur cliquait sur le bouton. La seule façon de procéder consiste à utiliser l'attribut prop().

var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;

cela a fonctionné dans mon cas, peut-être que quelqu'un en aura besoin. 

Lorsque j'ai essayé .attr(':checked'), il a retourné checked mais je voulais une valeur booléenne et .val() a renvoyé une valeur de l'attribut value.

3
Robert

Essaye ça

$('input:checkbox:checked').click(function(){
    var val=(this).val(); // it will get value from checked checkbox;
})

Ici le drapeau est vrai si coché sinon faux

var flag=$('#ans').attr('checked');

Encore une fois cela va faire cheked 

$('#ans').attr('checked',true);
2
sharif2008

Vous pouvez obtenir une valeur (true/false) par ces deux méthodes

$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");
0
PPB

D'abord vérifier 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

0
Ashok Charu

Si vous voulez une valeur entière cochée ou non, essayez:

$("#ans:checked").length
0
Nasaralla

Vous pouvez l'exécuter de cette façon:

$('input[id=ans]').is(':checked');     
0
swathi
 $("#id").prop('checked') === true ? 1 : 0;
0
Paulo Rodrigues