私は2つの送信ボタンを必要とするhtmlフォームを持っています。クリックされた各ボタンはイベントを捕捉し(フォーム提出)、フォームデータを処理し、2つのボタンのどれが押されたかに応じてGUI内を前後に移動する必要があります。同じフォームの2つの送信ボタン(別のアクション)
Javascriptをキャッチする方法が見つかりませんでした。どのボタンがサブミットイベントハンドラで押されましたか。クリックイベントハンドラを使用する場合、このアクションにはフォームは添付されません。何かアドバイス?
私は2つの送信ボタンを必要とするhtmlフォームを持っています。クリックされた各ボタンはイベントを捕捉し(フォーム提出)、フォームデータを処理し、2つのボタンのどれが押されたかに応じてGUI内を前後に移動する必要があります。同じフォームの2つの送信ボタン(別のアクション)
Javascriptをキャッチする方法が見つかりませんでした。どのボタンがサブミットイベントハンドラで押されましたか。クリックイベントハンドラを使用する場合、このアクションにはフォームは添付されません。何かアドバイス?
イベントオブジェクトには、イベントをトリガーしたDOMノードへの参照であるtarget
というプロパティがあります。クリックされたボタンが含まれているはずです。
https://jsfiddle.net/0fuq5dhf/1/に示すように:
var form = document.getElementById("frmData");
form.addEventListener("click", function(event) {
var formData = $('#' + event.currentTarget.id).serialize();
if(event.target.id == "submit1") {
//Process for first submit button
console.log(formData);
} else {
//process for the 2nd submit button
console.log(formData);
}
});
あなたはクリックしてクリックされたボタンに基づいて処理するために、フォームデータをシリアライズされたボタンを決定するために、ターゲットを得ることができます。
はい、 'event.target'はすべてのフォームオブジェクトを入力と2つのボタンのように持ちますが、どのボタンがイベントをトリガーしたかを捕まえる方法が見つかりませんでした。 – Ruben
フォームの送信イベントをリッスンする代わりに、ボタンのクリックイベントにバインドできますか。 –
私は、クリックイベントは、フォームを持っていない場合は、ボタンをイベントとして持って来てください。データを処理するためのフォームが必要です。 – Ruben