5

短縮版:

フォームのボタンラベルテキストを、タグを使用せずにサーバーに送信された値と異なるようにするにはどうすればよいですか?<button>

ロングバージョン:

フォームのボタンに表示されるテキストを、クエリ文字列で送信された値とは異なるものにしたかったのです。それで、私は周りを見回して、このアプローチに出くわしました...

<button name="method" type="submit" value="repackage">Update Config</button>

...そしてそれは私のラップトップの1つでIE9で動作し、私は幸せでした。ユーザーは「UpdateConfig」とmethod=repackageクエリ文字列で受信したサーバーを見ました。

次に、このアプリを動作させて、IE9を使用してワークステーションで実行しました。しかし、何かがうまくいかなかった。ユーザーには引き続き「UpdateConfig」が表示されますが、サーバーmethod=Update%20Configはクエリ文字列で受信するようになりました。

それで私はもう少し調査しました。www.w3schools.com<button>は、フォームでタグを使用しないことをお勧めしていることがわかりました。この記事では、「HTMLフォームで要素を使用する<button>と、ブラウザによって送信される値が異なる場合があり<input>ます。HTMLフォームでボタンを作成するために使用してください」と述べています。これは私が経験していることのようです。

それで私はもう少し調べて、これを行う正しい方法について多くの矛盾する情報を見つけました。たとえば、これはまさにこの質問をするStack Overflowの投稿<button>ですが、受け入れられる答えはタグを使用することです。経験と研究から、これは信頼できるアプローチではないと言えます。

4

3 に答える 3

2

新規参入者向け:一部のCSSでは、2017年9月の時点でこれは魅力のように機能します。

<form>
    <label style="padding:5px; cursor:pointer; border:solid 1px; border-color:#ccc">
    	<input style="display:none" type="submit" name="method" value="repackage">
    	<span>Update Config</span>
    </label>
</form>

于 2017-09-28T03:08:45.600 に答える
1

他に方法がない場合は、これを試してください。

ボタンの代わりに画像ボタンを使用します。画像ボタンは通常の送信ボタンとして機能しますが、目的のボタンテキストの画像を作成します(その場合、誰もテキストを変更できません)。

 <input type="image" src="http://images.webestools.com/buttons.php?frm=2&btn_type=31&txt=Update+Config" name="method" value="repackage">
于 2012-10-30T08:09:10.580 に答える
1

これも機能します。ブートストラップボタンクラスを使用して外観を操作します。

<label class="btn btn-primary">
 <input class="d-none" type="submit" name="method" value="repackage">
 Update Config
</label>

于 2019-07-10T19:24:44.490 に答える