2014-03-03 215 views
0

我有一个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方法未被调用。

为什么会发生这种情况?

+0

你有没有打过电话的validateion功能上提交事件表单标签:'<形式行动=“”的onsubmit =“返回确认()”>'并保持onClick原样? – Javad

回答

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; 
     }; 

而且可以在验证其他内之后被称为:

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

其不提交表单,而是双方提交方法背后的代码。我的描述可能有点误导。更新了 – rikket

+0

张贴您的与原始的问题的javascript代码。 – Vishal