我有一个显示所选复选框的编辑表单,在提交时我想检查复选框中是否有任何更改?
答案 0 :(得分:0)
您可以将每个复选框的当前值与其原始设置进行比较。为此,您可以将checked
属性与defaultChecked
属性进行比较。
以下是一些代码:
function wasAnyCheckChanged() {
return $('input[type=checkbox]').toArray().some(function(el) {
return el.checked != el.defaultChecked;
});
}
// At submission: collect them again and compare
$('form').submit(function() {
if (wasAnyCheckChanged()) {
alert('you changed checks');
} else {
alert('No changes made');
}
return false; // cancel submission
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="checkbox" name="chk1" checked>Option 1<br>
<input type="checkbox" name="chk2" >Option 2<br>
<input type="submit" name="submit" value="Submit"><br>
</form>
此代码显示一条警告,指示提交时的任何检查是否与页面加载时的检查不同。然后提交被取消。您可以决定要做什么,并且只在两种情况之一中取消提交。