Тестирование, если флажок установлен с помощью jQuery

если флажок установлен, то мне нужно только получить значение как 1; в противном случае мне нужно получить его как 0. Как это сделать с помощью jQuery?

$("#ans").val() всегда будет давать мне одно право в этом случае:

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

20 ответов


использовать .is(':checked') чтобы определить, проверено ли это, а затем установить соответствующее значение.

более подробная информация здесь.


$("#ans").attr('checked') 

скажет вам, если он проверен. Вы также можете использовать второй параметр true/false для проверки/снятия флажка.

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

за комментарий, используйте prop вместо attr при наличии. Например:

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

просто использовать $(selector).is(':checked')

возвращает логическое значение.


// use ternary operators
$("#ans").is(':checked') ? 1 : 0;

ответ Стефана Бринкмана отличный, но неполный для начинающих (опускает назначение переменной). Просто чтобы уточнить:

// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;

он работает следующим образом:

 var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;

пример:

var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );

оповещения 'нет'

если это полезно, пожалуйста, повторите ответ Стефана Бринкмана.


вы можете попробовать это:

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

Я нашел ту же проблему, прежде чем, надеюсь, это решение поможет вам. сначала добавьте пользовательский атрибут к флажкам:

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

написать расширение jQuery, чтобы получить значение:

$.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;
    }
};

используйте код, чтобы получить значение флажка:

$('#ans').realVal();

вы можете проверить здесь


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

вы также можете использовать:

$("#ans:checked").length == 1;

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

в jQuery : var test= $("#ans").is(':checked') и это возвращает true или false.

в ваши функции:

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

использование:

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

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

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

statusNum будет равен 1, если флажок установлен, и 0, если он не установлен.

EDIT: вы также можете добавить DOM в функцию.

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

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

есть несколько вариантов, таких как....

 1. $("#ans").is(':checked') 
 2. $("#ans:checked")
 3. $('input:checkbox:checked'); 

Если все эти опции возвращают true, вы можете установить значение accourdingly.


недавно я прошел через случай, когда мне нужно было проверить значение флажка, когда пользователь нажал кнопку. Единственный правильный способ сделать это-использовать


попробуй такое

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

здесь флаг true, если установлен в противном случае false

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

опять это сделает чек

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

вы можете получить значение (true / false) с помощью этих двух методов

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

Если вы хотите целое значение проверено или не попробовать:

$("#ans:проверено").длина


сначала проверьте, что значение проверено

$("#ans").find("checkbox").each(function(){
    if ($(this).prop('checked')==true){ 
    var id = $(this).val()
    }
});

Else установите 0 стоимостью


$('input[id=ans]').is ( ': checked');


 $("#id").prop('checked') === true ? 1 : 0;