Javascript在提交表单时检查表单数据是否已更改?

时间:2016-03-19 16:38:25

标签: javascript jquery html

我有一个显示所选复选框的编辑表单,在提交时我想检查复选框中是否有任何更改?

1 个答案:

答案 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>

此代码显示一条警告,指示提交时的任何检查是否与页面加载时的检查不同。然后提交被取消。您可以决定要做什么,并且只在两种情况之一中取消提交。