看是否复选框被默认
检查我有一个JavaScript函数,将变量每次被点击复选框:看是否复选框被默认
function handleClick(cb) {
alert('entered function');
setTimeout(function() {
if (cb.checked) {
$("#IsChecked").val('true');
}
else
$("#IsChecked").val('false');
alert('now my value is: '+ $("#IsChecked").val());
}, 0);
}
继承人我复选框:
<input id="MyCheckBox" type="checkbox" value="true" onclick="handleClick(this);"
name="MyCheckBox" checked="checked">
这个伟大的工程,每次复选框被检查。但是现在我需要知道当用户点击一个按钮时复选框是否被选中,并且从未触及过复选框。所以我这样做:
$(document).ready(function() {
$("#IsChecked").val('default');
$('#btnCheck').click(function (e) {
var isComplete = $("#IsChecked").val();
if (isComplete == 'default') {
var cb = $('#MyCheckBox');
handleClick(cb);
alert('after handleClick ischecked is: ' + $("#IsChecked").val());
}
});
});
当我点击我的按钮,复选框是默认选中的,我在此为了得到这些警报:
entered function
after handleClick ischecked is: default
now my value is: false
如果我选中该复选框来切换它,我得到这些警报预期:
entered function
now my value is: false
在我的handleClick事件,setTimeout是因为IE浏览器,所以我不能摆脱它。如何检查复选框是否被选中而不必单击复选框本身?谢谢
How can i check to see if a checkbox is checked without having to click
你可以找出是否复选框是与单击事件的JavaScript检查使用VAL()方法
$("#MyCheckBox").is(':checked')
这总是返回true – BoundForGlory 2012-07-13 17:23:55
现在请尝试我已经更新了我的答案 – Adil 2012-07-13 17:26:14
我不断收到非法字符。我这样做:var chk = $(“#MyCheckBox”)。is(':checked'); – BoundForGlory 2012-07-13 17:28:53
如果你想检查从按钮点击事件检查复选框。
$("#IsChecked").is(':checked'); //returns boolean
如何检查,看是否有复选框没有选中必须单击复选框本身?
$('#MyCheckBox').prop('checked')
会随时告诉你该复选框是否被选中。
但是,如果你不仅要测试它的地位,同时也执行你功能,然后记下该函数需要DOM元素,而不是一个jQuery对象作为参数。
如果你传递一个jQuery对象到你的函数,那么cb.checked
将总是计算为false
,因为jQuery对象没有checked
属性(只有DOM元素有)。
你必须给你的函数调用更改为:
handleClick(cb.get(0));
从jQuery对象中提取的DOM元素。
我得到一个错误cb.get不是一个函数。我使用jQuery.1.4。1 – BoundForGlory 2012-07-13 17:31:09
@ user1202717:它应该工作,它自1.0以来就是jQuery的一部分:http://api.jquery.com/get/。当然,如果'cb'不是一个jQuery对象。概念证明:http://jsfiddle.net/hhtuA/ – 2012-07-13 17:32:48
谢谢。我今天:) – BoundForGlory 2012-07-13 17:39:03
建议:使用带有复选框的更改事件。 – F0G 2012-07-13 17:17:37