[解決済み] jQueryを使わずにフォームのonSubmitイベントでどのSubmitボタンが押されたかを判断する方法 [重複] (英語)
2022-11-22 13:47:13
質問
私は2つの送信ボタンといくつかのコードを持つフォームを持っています。
HTMLです。
<input type="submit" name="save" value="Save" />
<input type="submit" name="saveAndAdd" value="Save and add another" />
JavaScriptです。
form.onSubmit = function(evnt) {
// Do some asyncrhnous stuff, that will later on submit the form
return false;
}
もちろん、2つの送信ボタンは異なることを達成します。で調べる方法はあるのでしょうか?
onSubmit
でどちらのボタンが押されたかを知る方法はありますか?
thatButton.click()
?
理想的には、ボタンのコードを変更せず、この動作を持つ純粋なJavaScriptアドオンを持ちたいと思います。
私は、Firefox が
evnt.explicitOriginalTarget
があることは知っていますが、他のブラウザのものは見当たりません。
どのように解決するのですか?
サブミットイベントハンドラ自体にはありません。
しかし、あなたが ができるのは は、それぞれのサブミットにクリックハンドラを追加して、どれがクリックされたかをサブミットハンドラに通知することができます。
以下は完全な例です (簡潔さのために jQuery を使用しています)。
<html>
<head>
<title>Test Page</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery(function($) {
var submitActor = null;
var $form = $('#test');
var $submitActors = $form.find('input[type=submit]');
$form.submit(function(event) {
if (null === submitActor) {
// If no actor is explicitly clicked, the browser will
// automatically choose the first in source-order
// so we do the same here
submitActor = $submitActors[0];
}
console.log(submitActor.name);
// alert(submitActor.name);
return false;
});
$submitActors.click(function(event) {
submitActor = this;
});
});
</script>
</head>
<body>
<form id="test">
<input type="text" />
<input type="submit" name="save" value="Save" />
<input type="submit" name="saveAndAdd" value="Save and add another" />
</form>
</body>
</html>
関連
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQuery AJAX送信フォーム
-
[解決済み] jQueryでラジオボタンを確認する方法は?
-
[解決済み] jQueryの送信ボタンの無効化・有効化
-
[解決済み] jQueryイベントKeypress。どのキーが押されたか?
-
[解決済み] Can I make a <button> not submit a form?
-
[解決済み] フォームを送信しないためのHTMLボタン
-
[解決済み】HTMLフォームのデフォルトの送信ボタンはどのように決定されるのでしょうか?
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] ECMAScriptとは?
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
-
[解決済み] フォームのsubmitイベントから、submitの原因となったボタンを取得するには?