5

精简版:

如何在使用<button>标签的情况下让表单的按钮标签文本与提交给服务器的值不同?

长版:

我想让表单中按钮中出现的文本与查询字符串中提交的值不同。所以,我环顾四周,发现了这种方法......

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

...这在我的一台笔记本电脑上的 IE9 上工作,我很高兴。method=repackage用户在查询字符串中看到“更新配置”和服务器。

然后我把这个应用程序带入工作并在工作站上运行它,同样使用 IE9。但是出了点问题。用户仍然看到“更新配置”,但服务器现在收到method=Update%20Config了查询字符串。

所以我又调查了一些。我发现 www.w3schools.com 建议不要<button>在表单中使用标签。他们说:“如果你<button>在 HTML 表单中使用元素,不同的浏览器可能会提交不同的值。用于<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 回答