在客户点击后找出复选框的值

时间:2012-08-20 13:26:16

标签: javascript jquery

如何在客户点击后获取复选框的值。

如下所示它始终返回页面上的加载值,但如果客户端更改它,那么它不会反映更改?感谢

var isChecked = $('#chkSelect').is(':checked');

5 个答案:

答案 0 :(得分:4)

您需要收听change事件:

jsFiddle demo

$('#chkSelect').change(function(){
   // use this one if you need the object value
   var isChecked = $('#chkSelect:checked').val();       // returns value: on / undefined
   // or this one if you need a boolean value
   var bool_isChecked = $('#chkSelect').is(':checked'); // returns boolean: true / false

   alert(isChecked +' '+ bool_isChecked);               // test the vars result
});

答案 1 :(得分:1)

$('#chkSelect').change(function(){
var isChecked = $('#chkSelect').is(':checked');
}
);

更推荐使用复选框处理复选框,然后使用.click(),因为可以更改复选框的状态而不单击它。上面的脚本将在每次更改时更新isChecked变量。

答案 2 :(得分:1)

那是因为您没有将代码附加到事件中。当用户单击此复选框时,您可以添加代码块

$('#chkSelect').click(function(){
     var isChecked = $(this).is(':checked');
}); 

答案 3 :(得分:1)

那里没有点击处理程序。您必须更新onclick:

$(document).ready(function(){
    var $chkSelect = $('#chkSelect'),
        isChecked = $chkSelect.is(':checked');

    $chkSelect.click(function(){
        isChecked = $chkSelect.is(':checked');
    }
});

答案 4 :(得分:0)

当客户端更改值时,您需要通过事件处理程序,.click()。change()等来捕获它。

因此,您需要添加一个事件处理程序,该事件处理程序接受一个函数作为其参数,然后在报告事件后(在您​​更新变量isChecked的情况下)执行某些操作

假设您的复选框ID为myChkbx

$("#myChkbx").change(function(){
  isChecked = $(this).is(':checked'); // will return true/false depending on the state
});

此外,如果您通过输入元素的value属性在复选框中存储某些值,则不会为您提供复选框的“值”。 value="some value" 为此你需要

$("#myChkbx").change(function(){
  isChecked = $(this).val(); // will return the value regardless if checked or not
});

您可以在this fiddle

中试用