什么都没有改变时禁用提交
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;
}
});
例如,我有一个带有名称和描述的编辑表单:
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;
}
});