例如,我有一个名称和描述的编辑表格:
Name: ApplePie
Description: Sort of cake.
(SUBMIT)
默认我可以点击提交按钮,并在没有任何改变时仍然更新条目。我想阻止这种行为。因此,当我单击ApplePie的输入字段并开始编写ApplePie时,提交按钮变为活动状态,但如果我没有更改,则默认情况下禁用提交按钮。
我正在使用Symfony 2.6.7和jQuery。
有人有想法吗? : - )
答案 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;
}
});