フォーム送信時、JavaScriptで検証して不正なら送信を止める。form.addEventListener(“submit”, e => { if (!valid) ( A ); }); とし、HTML側でブラウザ標準バリデーションを無効にするには form に ( B ) 属性を付ける。
解答
A: e.preventDefault()
B: novalidate
解説
送信イベントで preventDefault() すればサーバへ送られない。novalidate はHTMLの組み込み検証を無効化し、JS主導で制御できる。
使用例(サンプルコード)
[ html ]
<form id="f" novalidate>
<input id="email">
<button>送信</button>
</form>
<script>
f.addEventListener("submit", e => {
const valid = /@/.test(email.value);
if (!valid) { e.preventDefault(); alert("メールが不正"); }
});
</script>