私はアプライアンスのような製品の Web GUI に取り組んでいます。
私は正常に動作する HTML フォームを持っています。チェックボックス付きのリストが表示され、ユーザーはそれらのいくつかをチェックして、フォームを送信する「削除」ボタンをクリックします。サーバーは POST を取得し、アイテムを削除して、ページを更新します。大丈夫だ。
「よろしいですか?」を追加する必要があります。フォームへの確認。への呼び出しを追加すると
confirm("are you sure?");
FORM タグの onsubmit メソッド、または送信ボタン タグの onclick として、正常に動作しますが、見苦しいブラウザー ネイティブの確認ダイアログを使用します。
製品の他の場所には、私が使用したい素敵なカスタム CSS スタイルの確認ダイアログがありますが、それは次のように機能します: 適切な場所で、
myConfirm("Confirm", "Are you sure", "Yes", "No", confirmCallback);
これにより、クリックマスクが設定され、ダイアログがカスタマイズされ、中央に配置されて表示され、FALSE が返され、フォームが送信されません。
後でユーザーが決定したときに「はい」を押すと、confirmCallback 関数が呼び出されます。もう 1 つの製品の Ajax ベースのページでは、情報を収集し、postBody を作成し、Prototype の Ajax オブジェクトを使用して投稿します。すべて問題ありません。(「いいえ」の場合、ダイアログとクリックマスクが削除され、処理が続行されます。)
純粋な HTML フォームを使用したこの単純なページには、次のような confirmCallback 関数があります。
var confirmCallback = function() {
document.myForm.submit();
}
それはOKですが、フォームが送信されると、削除ボタンはすでにクリックされており、カスタム確認によって返された false は送信を抑制しました。代わりに、これは新しい送信と見なされ、削除ボタンは実際にはクリックされていないため、W3.org の HTML 4 標準セクション 17.13.3 に関して「成功」とは見なされません。サーバーはデータを取得しますが、削除ボタンはありません。
ここまで読んでくれてありがとう。これが私の実際の質問です。クロスブラウザの方法で、confirmCallback JavaScript 関数で、削除ボタンを起動させ、「成功」させ、残りのデータと一緒に送信するにはどうすればよいですか?