我有两个输入复选框,我想用 jQuery 选中/取消选中它们:
<input type="checkbox" name="user1" value="1" id="u1" onclick="loadUserCalendar(1)">
<input type="checkbox" name="user2" value="2" id="u2" onclick="loadUserCalendar(2)">
JavaScript 代码:
var list = new cookieList("calendar_users");
var users = list.items();
for (var i = 0; i < users.length; i++) {
$('input[name="user' + users[i].substr(1,1) + '"]').attr('checked', true);
console.log('substring: ' + users[i].substr(1,1));
console.log('enabling user ' + users[i]);
}
var users
包含这些值:u1,u2
。为了仅获取用户 ID,我执行了一个子字符串,它为我提供了正确的数字,如下面的控制台输出所示。
控制台输出:
substring: 1
enabling user u1
substring: 2
enabling user u2
我不知道为什么在代码运行时复选框没有被选中。我在这里做错了什么?
编辑:由于兼容性原因,我正在使用 jQuery 1.4.4,这就是我使用 .attr()
最佳答案
内联事件处理程序 (onclick="loadUserCalendar(1)"
) 不是 jQuery 方式。你的 html 中不应该有任何内容。摆脱它们并添加到您的 jquery 中:
$(function() {
$('form').on('click',':checkbox', function() {
loadUserCalendar($(this).val());
});
});
但也许你想要的是这样的:
$(function() {
$('form').on('click',':checkbox', function() {
$('form :checkbox').attr('checked','checked');
});
});
jquery 1.ancient版本:
$(function() {
$('input[type=checkbox]').live('click', function() {
// do things
});
});
关于javascript - 使用 jQuery 设置复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492603/