没有任何改变时禁用提交

时间:2015-06-03 08:21:42

标签: jquery forms symfony symfony-forms

例如,我有一个名称和描述的编辑表格:

Name: ApplePie
Description: Sort of cake.

(SUBMIT)

默认我可以点击提交按钮,并在没有任何改变时仍然更新条目。我想阻止这种行为。因此,当我单击ApplePie的输入字段并开始编写ApplePie时,提交按钮变为活动状态,但如果我没有更改,则默认情况下禁用提交按钮。

我正在使用Symfony 2.6.7和jQuery。

有人有想法吗? : - )

1 个答案:

答案 0 :(得分:3)

使用标志来检测是否对表单进行了任何更改。然后,在onsubmit中,检查标记,如果没有发生任何更改,则返回false

var changed = false;
$('form [name]').change(function(){
    changed = true;
});

$('form').submit(function({
    if(!changed){
        return false;
    }
});

请参阅Detecting Data changes in Forms using JQuery

<强>更新

从技术上讲,改变事件可能会触发,但“不是”#39;进行了更改(用户撤消更改)。

要真实检查是否进行了任何更改,您可以在之前/之后使用jQuery serialize()进行检查

 var originalForm = $('form').serialize();

 $('form').submit(function({
        var currentForm = $('form').serialize();
        if(orginalForm == currentForm){
            return false;
        }
    });