2017-05-02 1 views
0

ワンクリック後にボタンを無効にするコードがありますが、問題はフォームが送信しないことです。ワンクリック後にボタンを無効にしても、フォームの送信依頼はどうすればできますか。クリック後のJavascriptの無効化ボタンですが、フォームは送信されません

コード

<input id="submitbtn" name="submit" type="submit" value="Submit for Payment" /> 

<script type="text/javascript"> 
    $(function(){ 
     $('#submitbtn').one('click', function() { 
     $(this).attr('disabled','disabled'); 
     }); 
    }); 
</script> 

答えて

0

フォーム送信イベントfirの後までボタン無効化コードを延期するあなたの最善の選択肢かもしれません。これはいくつかの方法で行うことができます。無効にするボタンが1つしかない場合は、submitイベントリスナーをフォームに追加し、コールバックで無効にします。別の簡単な方法は、0ミリ秒後に実行されるsetTimeoutを使用することです。

setTimeout(() => $(this).attr('disabled','disabled') , 0); 

あなたが.prop()をサポートしているのjQueryのバージョンを使用している場合にも、私の代わりにattrのものを使用してお勧めします。例:$(this).prop('disabled', true)。 `のMyFunction()`定義されて

+0

ありがとう。これはうまくいった。 – CheezStix

+0

良いことに、setTimeoutのやり方が非同期的であることに留意してください。また、矢印関数( '()=> {}')との関係で 'this 'の文脈をメモしておきます。これは標準関数とは異なるためです。ここでの詳細は次の通りです:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#No_binding_of_this –

0

あなたはボタンを無効にするが、最初に提出して、フォームにonSubmit検証属性を追加し、そこにボタンを無効にするコードを置くには、すでに起こっている:

<form onsubmit="myFunction();"> 

<script type="text/javascript"> 
    function myFunction(){ 
     $('#submitbtn').attr('disabled','disabled'); 
     // my submit code here 
    } 
</script> 
+0

? – Barmar

+0

myFunctionは、ボタンを無効にするためのコードを置く関数です...私はそれがcompelteを追加する答えを更新するだけではっきりと思った。 – quirimmo

+0

今すぐ更新してください – quirimmo

1

てみてくださいthis:

$('form').submit(function() { 
    $(this).find("button[type='submit']").prop('disabled',true); 
}); 
0

$(function(){ 
 
    $('#submitbtn').on('click', function() { 
 
    $(this).prop('disabled', true); 
 
    $("#formID").submit(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="submitbtn" name="submit" type="submit" value="Submit for Payment" />

+0

'submit()'関数は '

'ではなく送信ボタン。 – Barmar

+1

'$(this.form).submit()'にする必要があります。しかしボタンはフォーム内にはありません。 – Barmar

+0

うん。私は実際にフォームIDを使用したかったのです。ありがとう。 –

関連する問題