web-dev-qa-db-ja.com

<a href="...">タグを使用してPOSTフォームを送信するにはどうすればよいですか?

showMessage.jspタグだけを使用してPOSTフォームを<a href="...">に送信するにはどうすればよいですか?

<form action="showMessage.jsp" method="post">
    <a href="showMessage.jsp"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>
67
hozaifa

代わりにボタンを使用する場合、JavaScriptは必要ありません。

<form action="your_url" method="post">
    <button type="submit" name="your_name" value="your_value" class="btn-link">Go</button>
</form>

リンクのようにボタンをスタイルする を使用できます。例:

.btn-link {
    border: none;
    outline: none;
    background: none;
    cursor: pointer;
    color: #0000EE;
    padding: 0;
    text-decoration: underline;
    font-family: inherit;
    font-size: inherit;
}
77
rybo111

submitオブジェクトでJavascript form関数を使用する必要があります。他の functions を見てください。

<form action="showMessage.jsp" method="post">
    <a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>
37
user898741

これにはjavascriptを使用する必要があります。

<form id="form1" action="showMessage.jsp" method="post">
    <a href="javascript:;" onclick="document.getElementById('form1').submit();"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>
32
naveed

あなたがそれを達成するためにMVCを使用する場合-あなたはこのような何かをする必要があります

 <form action="/ControllerName/ActionName" method="post">
        <a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
        <input type="hidden" name="mess" value=<%=n%>/>
    </form>

私はここでいくつかの例を試しましたが、MVCが投稿しても害がないとは考えていませんでした。

次に、コントローラーのアクションで、その上に<HTTPPost>を配置します。一番上に<HTTPGET>がない場合でも動作すると思いますが、明示的に配置するほうが少し安全だと思います。

3

<a href= ..をPOSTメソッドにだます方法は本当にないようです。ただし、ページのCSSにアクセスできる場合は、代わりにフォームを使用してこれを置き換えることができます。

残念ながら、CSSのボタンをアンカータグとしてスタイリングするだけの明らかな方法は、ブラウザごとに<button value= ...を異なる方法で処理するため、クロスブラウザ互換ではありません。

Incorrect:

<form action='actbusy.php' method='post'>
  <button type='submit' name='parameter' value='One'>Two</button>
</form>

上記の例では、FireFoxで 'Two'を表示して 'parameter:One'を送信しますが、IE8では 'One'を表示し、 'parameter:One'も送信します。

回避策は、データを送信するために非表示の入力フィールドを使用し、データを送信するためだけにボタンを使用することです。

<form action='actbusy.php' method='post'>
   <input class=hidden name='parameter' value='blaah'>
   <button type='submit' name='delete' value='Delete'>Delete</button>
</form>

このメソッドには、 'parameter:blaah'に加えて、POSTの余剰パラメータとして 'delete:Delete'も配信されるという副作用があることに注意してください。

(上記のように)一部のブラウザーではボタンラベルとして別のブラウザーが表示され、別のブラウザーではボタンラベルとして表示されるため、タグ間のvalue属性とボタンラベルを両方とも同じように保持します(この場合は「削除」)。

0
Laid