如果复选框被选中,那么我只需要得到值为1;否则,我需要得到它为0。我如何使用jQuery做到这一点?
$("#ans").val()在这种情况下总是会给我一个right:
<input type="checkbox" id="ans" value="1" />
如果复选框被选中,那么我只需要得到值为1;否则,我需要得到它为0。我如何使用jQuery做到这一点?
$("#ans").val()在这种情况下总是会给我一个right:
<input type="checkbox" id="ans" value="1" />
当前回答
Use:
$("#ans option:selected").val()
其他回答
我以前也发现过同样的问题 希望这个解决方案能帮助到你。 首先,在复选框中添加一个自定义属性:
<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();
你可以在这里测试
我最近经历了一个案例,当用户单击按钮时,我需要检查复选框的值。唯一正确的方法是使用prop()属性。
var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;
这在我的情况下是有效的,也许有人会需要它。
当我尝试了.attr(':checked'),它返回checked,但我想要布尔值和.val()返回属性值的值。
如果你想要整数值检查或不检查,尝试:
$("#ans:checked").length
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"));
使用.is(':checked')来确定它是否被检查,然后相应地设置你的值。
更多信息请点击这里。