2

jQueryプロンプトを使用して、ユーザーに保存を促しています。したがって、ユーザーが [保存] ボタンをクリックすると、Jquery プロンプトが表示され、ユーザーが変更を保存するかどうかを尋ねられます。問題は、プロンプトが閉じる前にユーザーが jQuery Save プロンプト ボタンを複数回クリックできることです。その結果、プロンプト保存ボタンがクリックされるたびに保存ルーチンが 1 回実行され、データベース内に重複レコードが発生します。最初のクリックでプロンプト保存ボタンを無効にするか、最初のクリックでプロンプトウィンドウを閉じて、複数の保存を防ぐ必要があります。これどうやってするの?

クライアントコード:

$.prompt("Are you sure you want to save? You will not be able to change your decision after it's been saved.", {
    title: "Save?",
    buttons: { "Save": true, "Cancel": false },
    submit: function (e, v, m, f) {
        if (v) {
            response = saveUpdates(LoanDetails);
        }
    }
});
4

2 に答える 2

0

ここでフィドルを作成しました:http://jsfiddle.net/smurphy/4fqjR/

解決策は少し複雑です。もっと簡単な方法があると思いましたが、ドキュメントを調べたところ、組み込みの機能が見つかりません。

コードは次のとおりです。

submit: function (value, message) {
        if (value) {
            $(message.prevObject)
               .find('button[value="true"]')
               .attr('disabled', true);

            //TODO: perform save 
            //response = saveUpdates(LoanDetails);
        }
    }

param はテキストの説明へのmessage参照であるため、その開始点から DOM をナビゲートすることでボタンを見つけることができます。

于 2014-05-16T14:17:49.793 に答える
0

グローバル変数をフラグとして使用するか、プロンプト ボタンを無効にしてみてください (ボタンを使用してプロンプトを呼び出す場合) $("#promptbutton").prop("disabled",true);

編集:

簡単な解決策は、saveUpdates 関数を呼び出す直前、または関数の開始時にプロンプ​​トを閉じることです。

jQuery.prompt.close();
于 2014-05-16T14:01:01.133 に答える