什么都没有改变时禁用提交

disabled submit when nothing changed

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

Name: ApplePie
Description: Sort of cake.

(SUBMIT)

默认 我可以单击提交按钮,并且在没有任何更改的情况下仍然更新条目。我想防止这种行为。因此,当我单击输入字段(例如 ApplePie)并开始编写 ApplePie|s 时,提交按钮会激活,但如果我未进行任何更改,则默认情况下提交按钮将被禁用。

我正在使用 Symfony 2.6.7 和 jQuery。

有人出主意吗? :-)

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

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

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

Detecting Data changes in Forms using JQuery

更新

从技术上讲,更改事件可能会触发,但 'no' 已进行更改(用户撤消更改)。

要真正检查是否进行了任何更改,您可以利用 jQuery serialize() 检查 before/after

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

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