单击检查验证并禁用按钮

时间:2014-03-03 18:24:55

标签: javascript asp.net button

我有一个ASP.NET应用程序,我已经实现了以下代码来禁止用户双击和提交按钮,因此代码背后的方法不会执行一次。

OnClientClick="this.disabled = true; this.value = 'Submitting...';" UseSubmitBehavior="false" onclick="BtnSubmit_Click"

这很完美,但在其中一个页面上我实现了javascript表单验证,下面的代码无效:

OnClientClick="return validation(); this.disabled = true;"  UseSubmitBehavior="false"  onclick="BtnAdd_Click"

验证是确保用户不留任何空字段,但是如果验证成功,则单击按钮时,按钮被禁用但未调用onclick方法。

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

Rikket,你必须编写单独的代码以防止双重提交表单,一旦提交,Jquery函数可能会有所帮助,如下所示,在你的JavaScript验证函数之后放置:

jQuery.fn.preventDoubleSubmission = function () {
            var $form = $(this);
            $form.on('submit', function (e) {
                if ($form.data('submitted') === true) {
                    e.preventDefault();
                } else {
                    $form.data('submitted', true);
                }
            }).find('input').on('change', function () {
                $form.data('submitted', false);
            });
            return this;
        };

可以在else中验证后调用:

 if (nullFieldTracked == 'true') {
                    alert(nullExceptionMsg);
                    return false;
                }
                else {
                    $('form').preventDoubleSubmission();
                }