JavaScriptで実現!HTMLフォームに2つの送信ボタンを設置する方法

2024-04-02

実装方法

HTMLフォームに2つの送信ボタンを設置するには、以下の方法があります。

type属性

それぞれのボタンのtype属性をsubmitに設定します。

<form action="/action_page.php">
  <input type="submit" value="送信">
  <input type="submit" value="キャンセル">
</form>

この場合、どちらのボタンをクリックしても、フォームはaction_page.phpに送信されます。

name属性

<form action="/action_page.php">
  <input type="submit" name="action" value="送信">
  <input type="submit" name="action" value="キャンセル">
</form>

この場合、どちらのボタンをクリックしても、フォームはaction_page.phpに送信されますが、actionという名前のクエリパラメータが送信されます。送信される値は、クリックしたボタンのvalue属性によって異なります。

formaction属性

<form>
  <input type="submit" formaction="/action_page1.php" value="送信1">
  <input type="submit" formaction="/action_page2.php" value="送信2">
</form>

この場合、ボタン1をクリックするとフォームはaction_page1.phpに送信され、ボタン2をクリックするとフォームはaction_page2.phpに送信されます。

<form>
  <input type="submit" formmethod="post" value="送信">
  <input type="submit" formmethod="get" value="キャンセル">
</form>

この場合、ボタン1をクリックするとフォームはPOSTメソッドで送信され、ボタン2をクリックするとフォームはGETメソッドで送信されます。

JavaScriptを使用して、送信ボタンの動作を制御することもできます。

<form>
  <input type="submit" id="submit1" value="送信1">
  <input type="submit" id="submit2" value="送信2">
</form>

<script>
document.getElementById("submit1").onclick = function() {
  // 送信処理1
};

document.getElementById("submit2").onclick = function() {
  // 送信処理2
};
</script>

この場合、ボタン1をクリックすると送信処理1が実行され、ボタン2をクリックすると送信処理2が実行されます。

上記のいずれの方法を使用しても、HTMLフォームに2つの送信ボタンを設置することができます。それぞれの方法のメリットとデメリットを理解して、状況に合わせて最適な方法を選択してください。




<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプルコード</title>
</head>
<body>
  <form action="/action_page.php" method="post">
    <input type="submit" name="action" value="送信">
    <input type="submit" name="action" value="キャンセル">
  </form>
</body>
</html>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプルコード</title>
</head>
<body>
  <form action="/action_page.php" method="post">
    <input type="submit" id="submit1" value="送信1">
    <input type="submit" id="submit2" value="送信2">
  </form>

  <script>
  document.getElementById("submit1").onclick = function() {
    // 送信処理1
  };

  document.getElementById("submit2").onclick = function() {
    // 送信処理2
  };
  </script>
</body>
</html>

上記のコードを参考に、ご自身の目的に合った方法でHTMLフォームに2つの送信ボタンを設置してください。




HTMLフォームに2つの送信ボタンを設置する他の方法

formaction属性を使用して、それぞれのボタンの送信先を指定することができます。

<form>
  <input type="submit" formaction="/action_page1.php" value="送信1">
  <input type="submit" formaction="/action_page2.php" value="送信2">
</form>
<form>
  <input type="submit" formmethod="post" value="送信">
  <input type="submit" formmethod="get" value="キャンセル">
</form>
<form>
  <input type="submit" id="submit1" value="送信1">
  <input type="submit" id="submit2" value="送信2">
</form>

<script>
document.getElementById("submit1").onclick = function() {
  // 送信処理1
};

document.getElementById("submit2").onclick = function() {
  // 送信処理2
};
</script>

画像を使う

送信ボタンの代わりに画像を使用して、フォームを送信することもできます。

<form action="/action_page.php" method="post">
  <input type="image" src="submit1.png" alt="送信1">
  <input type="image" src="submit2.png" alt="送信2">
</form>

html forms submit


flexboxとgridでレイアウトを柔軟に

CSS解説position プロパティは、要素の表示位置を指定します。 relative: 要素を元の位置から相対的に移動します。 absolute: 要素を親要素の左上隅を基準に絶対的な位置に配置します。position プロパティは、要素の表示位置を指定します。...


getBoundingClientRect()メソッドの使い方

要素の位置は、ページ座標系と親要素座標系の2つの座標系で取得できます。ページ座標系: ページ全体を基準とした座標系です。要素の左上端が(0, 0)になります。親要素座標系: 親要素を基準とした座標系です。要素の左上端が親要素の左上端からの相対的な位置になります。...


デザインの幅が広がる!セレクトボックスの高さを自由に変更する方法

方法size属性size属性は、同時に表示される選択肢の数を指定します。この値を調整することで、間接的にセレクトボックスの高さを調整できます。height属性height属性は、セレクトボックスの高さ(ピクセル単位)を直接指定します。CSS...


【JavaScript】たった一行でできる!HTMLページのタイトルを取得する方法3選

このチュートリアルでは、JavaScript を使用して HTML ページのタイトルを取得する方法について説明します。 3 つの主要な方法と、それぞれの利点と欠点について紹介します。方法 1: document. title プロパティを使用する...


Webデザイナー必見!Flexboxを使ってテキストを美しく中央揃えする方法

align-items プロパティは、Flexboxコンテナ内のアイテムを垂直方向にどのように配置するかを指定します。このプロパティを使ってテキストを垂直方向に中央揃えするには、以下の値を指定します。center: アイテムを垂直方向に中央揃えします。...


SQL SQL SQL SQL Amazon で見る



JavaScript/jQueryでフォーム送信時の動作をカスタマイズする

異なる処理を実行する ボタン1: 注文確定 ボタン2: カートに入れるボタン1: 注文確定ボタン2: カートに入れる異なるページに遷移する ボタン1: 次のステップへ進む ボタン2: キャンセルボタン1: 次のステップへ進むボタン2: キャンセル