2016-08-28 4 views
1

フォームが提出されたら、送信ボタンを無効にしたいと思います。つまり、ユーザーがサブミットをクリックした後にサブミット・ボタンをクリックできないようにする必要があります。つまり、更新後もサブミットボタンを無効にしておくことを意味します。一度提出されたJquery submitボタンを無効にする

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

あなたはerrorの場合には、ユーザが再フォームを送信することができますので、ajaxsuccessでそれを行う必要があります。 あなたの場合、それは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

が#として宣言されている場合はハッシュで#まだ動かない。リフレッシュ後に送信ボタンを無効にしておきたい – user3807187

関連する問題