【问题标题】:Multiple submits in an HTML form在 HTML 表单中多次提交
【发布时间】:2012-03-23 03:39:31
【问题描述】:

我有一个需要多个提交按钮的 HTML 表单,如下所示:

<input type="submit" name="foo" value="1"/>
<input type="submit" name="foo" value="2"/>
<input type="submit" name="foo" value="3"/>

问题是我希望它在按钮上显示除 value 属性之外的内容(在上面的示例中:1、2、3)。例如,我想为 value="1" 的按钮显示“Bar”。这可能吗?

我考虑过使用&lt;button&gt; 标签,像这样:

<button name="foo" value="1">Bar</button>

使用&lt;button&gt; 的问题(来自 w3schools):

如果你在 HTML 表单中使用元素,不同的浏览器 可以提交不同的值。 Internet Explorer,之前的版本 9,将 提交和标签之间的文本,而其他 浏览器将提交 value 属性的内容。使用 在 HTML 表单中创建按钮的元素。

想法?

【问题讨论】:

    标签: html xhtml semantic-markup


    【解决方案1】:

    给每个按钮一个唯一的名称,然后检查它们是否存在于 POST 变量中。然后您可以将值设置为您想要的任何值。

    【讨论】:

    • 所以 name 属性可能包含我真正需要的值,而 value 属性包含要在按钮上显示的内容?我需要的这些值将在表单生成期间动态分配。试图在表单处理程序中反转过程会使事情变得比需要的更难。看起来很hackish,不是吗?
    • @StackOverflowNewbie:是的,这有点骇人听闻,但我认为除非您想使用 JavaScript,否则没有其他方法。如果您愿意,可以在单击隐藏输入时设置它的值。或者,如果您在后端使用 PHP,请将名称设置为 name="submit[value_i_want]",然后从 $_POST['submit'] 中提取密钥
    【解决方案2】:

    每个按钮都必须有唯一的名称,以便您可以为一个或多个按钮设置任何值。例如

     <input type = "button" name = "foo1" value = "Bar1">
    <input type = "button" name = "foo2" value = "Bar2">
    <input type = "button" name = "foo3" value = "Bar3">
    

    实现它..

    【讨论】:

    • name 属性不必是唯一的。该限制适用于 id 属性。
    • 请记住,我希望通过 POST/GET 提交的值不是 value 属性中的值。但是,我需要该按钮来显示除通过 POST/GET 发送的内容之外的其他内容。
    • 另外,type="button" 表示表单不会提交。我需要它来提交。没有 JS。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多