jquery复选框val()始终返回

时间:2013-09-15 04:07:28

标签: jquery

嗨,经过大量搜索,我得到了一个方法来检查我的复选框。但我不知道是什么问题。它的val()总是返回 。检查时以及取消选中时都会发生这种情况。我想它应该在未选中时返回 null 。帮助

$(document).ready(function(){
$('#ch').change(function(){
    alert($(this).val());
});
 });

和html

<input type="checkbox"  id="ch"/> Check it out...

5 个答案:

答案 0 :(得分:8)

您可以选择检查checkbox是否已选中或未选中

alert($(this).is(":checked")); ////return true if checked

或者

alert(this.checked); //return true if checked

或者

<input type="checkbox" id="ch" checked/>
alert($(#ch).attr( "checked")); //return checked if checked 

或者

alert($(this).prop( "checked")); //return true if checked

答案 1 :(得分:4)

我认为你要找的是否检查是否可以检查已检查状态

alert(this.checked); // or $(this).is(':checked')

演示:Fiddle

答案 2 :(得分:2)

你可以这样做:

alert($(this).prop('checked'));

或者如果您想获取复选框的值,则需要添加value属性,例如:

<input type="checkbox" value="your_value" id="ch"/> Check it out...

和js

$('#ch').change(function(){
    alert($(this).val()); //gives you 'your_value' in any case
});

$(this)是一个jQuery集合,您可以使用jQuery方法获取相关数据,如果您想使用.checked,您可以执行以下任一操作:

this.checked
//or
$(this)[0].checked

这意味着:

$(this)[0] == this

演示:: jsFiddle

答案 3 :(得分:1)

尝试:

$(document).ready(function(){
    $('#ch').change(function(){
        alert($(this).is(':checked'));
    });
});

DEMO FIDDLE

答案 4 :(得分:0)

您需要为表单对象提供.Val()的值属性,以返回您可以使用的内容:

<input type="checkbox" value="some_usefull_value" id="ch"/>