フォーム内にいくつかのボタンがあります。そのうちの 1 つに別の URL をアクション URL として使用してもらいたい。しかし、私はそれをそのフォームの中に入れたいのですが、そのための別のフォームを作成したくありません。
どうやってやるの?
フォーム内にいくつかのボタンがあります。そのうちの 1 つに別の URL をアクション URL として使用してもらいたい。しかし、私はそれをそのフォームの中に入れたいのですが、そのための別のフォームを作成したくありません。
どうやってやるの?
HTML5 (IE>9) は、formaction
属性を提供します。
<form action="demo_form.asp" method="get">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<button type="submit">Submit</button><br>
<button type="submit" formaction="demo_admin.asp">Submit as admin</button>
</form>
送信ボタンが 2 つあるフォーム。最初の送信ボタンはフォーム データを「demo_form.asp」に送信し、2 番目の送信ボタンは「demo_admin.asp」に送信します。
これには JavaScript を使用できます
<form name="my_form" method="post">
Name <input type="text" name="person_name" /><br />
<input type="button" value="Button 1" name="button_1" onclick="return target_btn1();">
<input type="button" value="Button 2" name="button_2" onclick="return target_btn2();">
</form>
<script>
function target_btn1() {
document.my_form.action = "whatever.php"; //Trigger action
document.my_form.submit(); //Submit action performed
return true;
}
function target_btn2() {
document.my_form.action = "whatever2.php"; //Trigger action
document.my_form.submit(); //Submit action performed
return true;
}
</script>
JavaScript 関数を呼び出すボタンに onclick イベントを追加します。次に、その関数で、フォームのアクションを設定して送信します。このようなもの:
<input type="button" id="blah" value="Press Me" onclick="javascript:SetForm();">
次に、JavaScriptで:
function SetForm()
{
document.formname.action = '';
document.formname.submit();
}