JavaScriptでアクションを変更した後に送信するHTMLフォームがあります。2 つの異なるボタンで送信できます。
興味深いのは、アクションを変更した後、フォームを送信する前に、デバッグを試みてアラートを挿入したことです。アラートが表示されることなく、フォームが送信されます。実際に JavaScript を実行していることを確認するために、アクションを変更する前にアラートを追加しました。そのアラートが表示されます。アクションを変更した後のアラートはそうではありません。
<form name='FormSelect' method='post' action='Undefined'>
...
<button onclick="SubmitForm('class')">Submit</button>
...
<button onclick="SubmitForm('student')">Submit</button>
...
</form>
<script type="text/javascript">
function SubmitForm(target){
alert("Action 1: " + document.FormSelect.action);
if (target=="class") {
document.FormSelect.action = "ClassAction.php";
} else {
document.FormSelect.action = "StudentAction.php";
}
alert("Action 2: " + document.FormSelect.action);
// document.FormSelect.submit();
}
</script>
それは予想される一連の出来事ですか?