1

私のページには2つのフォームがあります。

フォームを 1 つだけ送信したい。

しかし、送信ボタンを使用すると、そのページのすべてのフォームが送信されます。

JavaScript を使用して単一のフォームを送信するにはどうすればよいですか?

私のコードは、

<form name="f1" method='post' action=''>
  <input type='submit' value='submit'>
</form>

<form name="f2" method='post' action=''>
  <input type='text' name='text2'>
  <input type='button' value='submit'>
</form>
4

4 に答える 4

3

入力タイプの送信をボタンに変更し、各ボタンのクリックイベントを作成して、それぞれのフォームを送信します。

<input type="button" onClick="submit_form1()" value="submit form1">

<script type="text/javascript">
function submit_form1()
{   alert("submit me");
f1.submit();
}
</script>
于 2012-10-30T04:09:03.020 に答える
1

フォーム ID を Javascript の「サブミッター」関数に送信し、それを使用して送信できます。

<form name="f1" id="f1" method='post' action=''>
  <a href="javascript: submitform("f1")">submit</a>
</form>

<form name="f2" id="f2" method='post' action=''>
  <input type='text' name='text2'>
  <a href="javascript: submitform("f2")">submit</a>
</form>


<script type="text/javascript">
function submitform(frmId)
{
  myFrm = document.getElementById(frmId);
  myFrm.submit();
}
</script>
于 2012-10-30T04:12:02.307 に答える
0
<!--
(1) Property 'name' has no meaning in 'form' tag
(2) Set the desired URL in 'action'
(3) Set ID for the forms to call from JS
(4) Use JavaScript to call the '.submit()' method
-->

<form method="POST" action='your-page-url' id="form1">
  <input type='submit' value='submit'/>
</form>

<form method="POST" action='your-page-url' id="form2">
  <input type='text' name='text2'/>
  <input type='button' value='submit'/>
</form>

<button onclick="submit_form('form1');">Submit form 1</button>
<button onclick="submit_form('form2');">Submit form 2</button>

<script>
function submit_form(Form_Id) {
  var Form = document.getElementById(Form_Id);
  Form.submit();
}
</script>
于 2012-10-30T04:10:52.953 に答える
0

document.forms['f1'].submit();最初のフォームは送信されますが、ここでは、送信ボタンに対応するフォームのみが送信される送信を押すと、js 送信は必要ありません。サーバー側で投稿値を印刷すると、これは明確になります。単純なボタンではなく、送信ボタンが必要です。送信ボタンには、フォームを自動送信するデフォルトのプロパティがあり、タイプボタンとしてアクションを指定する必要があります。

<input type='submit' value='submit'>
于 2012-10-30T04:11:20.903 に答える