2017-02-09 12 views
0

JSではいくつかのアクションをブロックすることができます。 somecallはajaxコールです。いくつかのajaxアクションが完了するまでブロックをサブミットします。

いくつかの簡単なpseucode:

<form> 
    <button type="submit" name="hey" onstart="doSomeCall(); while (1) { if (isCallDone()) {break;} }" > </input> 
</form> 

現実には、それはボタンが、同様のものではないのです。

EDIT1

私はより良い状況を説明する擬似コードを変更します。だから、私はこのコンポーネントをすぐにブロックする可能性が必要です。 JSで可能ですか? onstartではjavascriptコードを実行します。

<form> 
    <p:tree> 
    <p:ajax event="select" onclick="doSomeCall(); while (1) { if (isCallDone()) {break;} }" /> 
    </p:tree> 
</form> 
+0

あなたが宣言したクリック一度呼び出される関数の '' let''? '' if''ステートメントでそれを押します。 '' if(isCallDone()){break; } ''。 – Crowes

+0

擬似コードを改善していただきありがとうございます。 – Tony

答えて

0

コールバック関数内でfalseを返すか、default from happeningを防ぐことができます。あなたは長い操作を開始する前に、あなたはすでにあなたのボタンのクリックハンドラ削除.off() に見てくださいjqueryのを使用する場合は、AJAXを追加する解決されたとき

0

$the_button.off("click"); 

とバック

$the_button.click(your_handler_function); 
+0

DOMからの送信が多すぎるのはなぜですか? – kbariotis

+0

@kbariotis特にidを使用している場合や、要素を選択してプライベート変数に格納している場合は、セレクタを使用するのに間違いはありません。すでに時間がかかるものでここで働いているので、作者の状況でスピードは必要ありません。もっと下に、私はちょうどもう一つのオプションを投げます。これは実際には生涯の点では非常に明確です。開発者は、彼が必要とする場所に「オフ」にして、実行する必要がある正確な時刻に「クリック」して返信します。最後に大量のコードを使用すると便利です。 –

関連する問題