Javascript 如何确定复选框是否与其初始选中状态不同
我知道我可以使用Javascript 如何确定复选框是否与其初始选中状态不同,javascript,jquery,Javascript,Jquery,我知道我可以使用defaultChecked来确定复选框的初始状态是什么,但是我如何确定其中一个是否已从默认状态更改 我需要设置一个变量,这样我就可以根据结果操作其他东西,这就是我目前拥有的: // This checks if a checkbox has changed from being initially checked $isModified = $(this).find('input')[0].defaultChecked !== $(this).find('input').pro
defaultChecked
来确定复选框的初始状态是什么,但是我如何确定其中一个是否已从默认状态更改
我需要设置一个变量,这样我就可以根据结果操作其他东西,这就是我目前拥有的:
// This checks if a checkbox has changed from being initially checked
$isModified = $(this).find('input')[0].defaultChecked !== $(this).find('input').prop('checked') ? true : false
[编辑]我需要检查复选框是否已从其默认状态更改,而不管它最初是否被选中
这是我认为可能有效(但无效)的方法:
有人有解决办法吗
谢谢
[编辑]
经过很多非常有帮助的。。救命啊。以下是我的解决方案,当其中一个输入上发生更改事件时触发:
$('#input-parent').each(function(i) {
var $this = $(this),
isModified
;
$this.find('input').each(function() {
var $this = $(this);
if ( !isModified) {
isModified = $this[0].defaultChecked !== $this[0].checked;
}
});
if ( isModified ) {
// Do something
} else {
// Do something else
}
});
在您的示例中,您将
defaultChecked
与defaultChecked
属性进行比较。您应该比较defaultChecked
和checked
属性
$isModified = $this.find('input')[0].defaultChecked !== $this.find('input')[0].checked;
仅供参考,您不需要在javascript中用$前缀变量也供参考:通常用
$
前缀jQuery对象以区分它们,但不是布尔或字符串等普通变量。感谢Jamiec,我通常用$
前缀jQuery对象变量,不确定为什么要将其添加到此变量中……您好,先生,默认选中属性和选中属性之间有什么区别?
$isModified = $this.find('input')[0].defaultChecked !== $this.find('input')[0].checked;