【问题标题】:disabled submit when nothing changed当没有任何改变时禁用提交
【发布时间】:2015-06-03 08:21:42
【问题描述】:

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

Name: ApplePie
Description: Sort of cake.

(SUBMIT)

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

我正在使用 Symfony 2.6.7 和 jQuery。

有人有想法吗? :-)

【问题讨论】:

    标签: jquery forms symfony symfony-forms


    【解决方案1】:

    使用标志来检测是否对表单进行了任何更改。然后,在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

    更新

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

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

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

    【讨论】:

    • @tokuimo,没问题,很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    相关资源
    最近更新 更多