jQuery测试是否选中了复选框

如果复选框被选中,那么我只需要得到值为1;否则,我需要得到它为0。我如何使用jQuery做到这一点?

$("#ans").val()总是会给我一个正确的在这种情况下:

<input type="checkbox" id="ans" value="1" />
758637 次浏览

使用.is(':checked')来确定是否检查它,然后相应地设置您的值。

更多信息在这里

使用:

$("#ans option:selected").val()
$("#ans").attr('checked')

会告诉你是否检查过。您还可以使用第二个参数true/false来选中/取消选中复选框。

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

每个注释,使用prop而不是attr。例句:

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

你还可以使用:

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

使用$(selector).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();

你可以测试在这里

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


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

如果选中复选框,statusNum将等于1,如果没有选中则为0。

编辑:也可以将DOM添加到函数中。

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


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

试试这个

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

此处flag为真,否则为假

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

同样,这将使复选框

$('#ans').attr('checked',true);
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
$('input:checkbox:checked').val();        // get the value from a checked checkbox
<input type="checkbox" id="ans" value="1" />
< p > Jquery: # EYZ0 返回true或false

在你的职责范围内:

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

@StefanBrinkmann的回答很好,但对初学者来说不完整(省略了变量赋值)。澄清一下:

// 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");

我最近经历了一个案例,当用户单击按钮时,我需要检查复选框的值。唯一正确的方法是使用prop()属性。

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

这在我的情况下是有效的,也许有人会需要它。

当我尝试.attr(':checked')它返回checked,但我想布尔值和.val()返回属性value的值。

你可以通过这两种方法得到值(true/false)

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

有几个选项,如....

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

如果所有这些选项都返回true,那么您可以相应地设置值。

如果你想要整数值检查或不检查,尝试:

$("#ans:checked").length

首先检查值是否被检查

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

否则设置0

你可以这样执行:

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

我发现下面的方法对我有用,混合了其中一个答案,但是有if语句。

$('#checkbox').on('change', function () {
let checkbox_true;
checkbox_true = $('#checkbox').prop("checked") ? 1 : 0 ;
if (checkbox_true === 1) {
alert('Yes');
} else {
alert('no');
}
})