-1

客户端单击后如何获取复选框的值。

有了这个,它总是返回页面上加载的值,但是如果客户端更改它,那么它不会反映更改?谢谢

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

5 回答 5

4

你需要监听一个change事件:

jsFiddle 演示

$('#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
});
于 2012-08-20T13:30:27.847 回答
1
$('#chkSelect').change(function(){
var isChecked = $('#chkSelect').is(':checked');
}
);

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

于 2012-08-20T13:31:05.767 回答
1

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

$('#chkSelect').click(function(){
     var isChecked = $(this).is(':checked');
}); 
于 2012-08-20T13:31:09.857 回答
1

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

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

    $chkSelect.click(function(){
        isChecked = $chkSelect.is(':checked');
    }
});
于 2012-08-20T13:31:18.503 回答
0

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

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

假设您的复选框 id 是 myChkbx

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

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

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

你可以在这个小提琴中尝试一下

于 2012-08-20T13:43:05.337 回答