web-dev-qa-db-ja.com

送信ボタンとしてのタグ?

こんにちは、送信ボタンとして「a」タグを取得しようとしています。ウェブのどこかにコードを見つけました。しかし、うまくいきませんでした。

<a href="#" onclick="this.form.submit()">Submit</a>

私のニーズを達成するためのコードはありますか?

32
theepan

formidを付けてから、次のようにします。

document.getElementById("yourFormId").submit();

ベストプラクティスは、おそらくリンクにもidを指定し、イベントハンドラーを削除することです。

document.getElementById("yourLinkId").onclick = function() {
    document.getElementById("yourFormId").submit();
}
36
James Allardice

このコードを試してください:

<form id="myform">
  <!-- form elements -->
  <a href="#" onclick="document.getElementById('myform').submit()">Submit</a>
</form>

ただし、JavaScriptが無効になっているユーザーはフォームを送信できないため、次のコードを追加できます。

<noscript>
  <input type="submit" value="Submit form!" />
</noscript>
28
ComFreek

フォームができる直接の親であると仮定します:

<a href='#' onclick='this.parentNode.submit(); return false;'>submit</a>

そうでない場合は、次のようなフォーム名属性を使用してアクセスできます。

<a href='#' onclick='document.forms["myform"].submit(); return false;'>submit</a>

両方の例を参照してください: http://jsfiddle.net/WEZDC/1/

12
amosrivera

以下のようなものを試してください

 <a href="#" onclick="this.forms['formName'].submit()">Submit</a> 
1
Praveen

これは@ComFreek ansの改良です:

<form id="myform">
  <!-- form elements -->
  <a href="javascript:;" onclick="document.getElementById('myform').submit()">Submit</a>
</form>

したがって、アクションはトリガーされず、ページがリロードされません。特に、SPAを使用したフレームワークで開発している場合。

0
Diego Graziano