HTMLフォームに複数のSubmitボタンを挿入する際のJavascript処理
10963 ワード
前回はForm寸法の更新と維持のテクニック勉強しました次に、フォームに複数のSubmitボタンがある場合、どうすればいいかについて説明します.設計の制限のため、Submitボタンをフォームに添付するしかない場合、どのように符号化するかについて説明します.
Formには少なくとも2つのSubmitボタンがあります。
マーク
<form>
<input type="text" name="name1" />
<input type="text" name="name2" />
<button type="submit" data-submit-type="search">조회</button>
<button type="submit" data-submit-type="excel">엑셀 다운로드</button>
</form>
処理中、「照会」ボタンと「Excelのダウンロード」ボタンをsubmitボタンにしたいと思います.「Excelダウンロード」には、フォーム入力をパラメータとして渡すロジックもあるため、フォームのsubmitプロセッサのすべてのロジックがFormDataを共有し、メンテナンスを簡素化できます.submitプロセッサでsubmitタイプを区別するには、submitTypeをデータセットに追加します.
イベントリスナーの登録
const formElement = document.querySelector('form selector');
formElement.addEventListener('submit', handleSubmit);
submitイベントをバインドするだけで、メンテナンスが行えます.イベントハンドラ
function handleSubmit(e) {
e.preventDefault();
const formData = new FormData(e.target);
const submitType = e.submitter.dataset.submitType // submitter: IE 미지원
switch (submitType) {
case 'search':
search(formData); break;
case 'excel':
downExcel(formData); break;
default:
console.error('알 수 없는 submit type');
}
}
SubmitボタンはFormの外にあります。
<form id="someForm">
<input type="text" name="name1" />
<input type="text" name="name2" />
<button type="submit" data-submit-type="search">조회</button>
</form>
...
...
<button type="submit" form="someForm" data-submit-type="excel">엑셀 다운로드</button>
設計上の制限によりsubmitボタンはフォームの外部にしか存在しませんが、このボタンがフォームに明らかに関連している場合は、次のようにフォーム属性にフォームのidを指定することで接続できます.Reference
この問題について(HTMLフォームに複数のSubmitボタンを挿入する際のJavascript処理), 我々は、より多くの情報をここで見つけました https://velog.io/@seop/HTML-Form-내부에-다수의-Submit-버튼을-넣을때-Javascript-처리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol