2016-08-28 60 views
1

我想在表單提交後禁用提交按鈕。這意味着在用戶點擊提交後,提交按鈕不應該是可點擊的。這意味着我希望提交按鈕在刷新後仍保持禁用狀態禁用Jquery提交按鈕一旦提交

; (function ($) { 

    $.fn.tpFormDialogCustom = function (method) { 

     var self = this; 

     var dialogButtons = [ 
      { 
       text: "Submit and Email", 
       id: "tpFormDialog_btnSubmit", 
       click: submitandmailTpFormDialog 
      }, 


function submitandmailTpFormDialog() { 
    if(CheckValidate()) { 
    commonDialogs.showError(ExampleMessages.JournalError); 
    } else { 
    commonDialogs.showConfirm(ExampleMessages.ConfirmEmail, function() { 
     try { 
     commonDialogs.showProgress(ExampleMessages.SubmitAndEmail); 
     var o = getOptions(); 
     var form = $(o.form); 
     form.ajaxSubmit({ 
      success: handleEmailResponse, 
      beforeSerialize: function($form, options) { 
      if(!$("#SubmitBtn", $form).length) { 
       $('select.required', $form).prop('disabled', false); 
       $form.append("<input id='SubmitBtn' type='hidden' name='From' value='Submit' />"); 
      } 
      } 
     }); 
     } catch(e) { 
     commonDialogs.showError(); 
     } 
    }); 
    } 
} 


function handleEmailResponse(data) { 
      $('#tpFormDialog_btnSubmit').prop("disabled", true); 
      commonDialogs.hideProgress(); 
      var o = getOptions(); 
      if (data.IsSuccess) { 
       commonDialogs.showAck(ExampleMessages.ConfirmSendEmail); 
       closeTpFormDialog(); 
       o.table.refresh(); 
      } else { 
       var errors = data.ResponseModel; 
       if (typeof (errors) === 'string') { 
        commonDialogs.showError(errors); 
       } else { 
        helpForValidation.showErrors(errors); 
       } 
      } 
     }; 
+0

我通常隱藏我的提交按鈕,點擊時不顯示任何內容,並用'謝謝你聯繫我們'類型的消息替換它們。 –

+0

[Jquery禁用按鈕(彈出對話框)]的可能重複(http://stackoverflow.com/questions/39197502/jquery-disable-button-popup-dialog) – user3807187

回答

3

您可以通過添加禁用屬性來提交按鈕來禁用您的提交按鈕。

$('input:submit').click(function(){ 
    console.log("Form is submiting....."); 
    $('input:submit').attr("disabled", true); 
}); 

演示:https://jsfiddle.net/Prakash_Thete/6qqgszs4/

2

你應該做它ajaxsuccess所以在error情況下,用戶可以重新提交表單。 在你的情況下,它將在handleEmailResponse函數中。

function handleMailResponse(){ 
    $('#btnSubmitId').prop("disabled", true); 

    /* the rest of your code */ 
} 
+0

嗨,我將它添加到handlemailresponse但它不似乎工作。最新的答案在頂部。 – user3807187

+0

$('tpFormDialog_btnSubmit')。prop(「disabled」,true);應該是$('#tpFormDialog_btnSubmit')。prop(「disabled」,true);使用散列#如果它被聲明爲id Merlin

+0

added#。還是行不通。我希望提交按鈕在刷新後保持禁用狀態。 – user3807187