按钮在Chrome中不起作用

时间:2012-02-16 16:08:46

标签: html forms asp-classic onclick

我有

<button name="foo" value="bar" onclick="submit()" >foobar</button>

当我点击firefox中的按钮时,值被传输(是foo),我可以读取如下值:

dim mode                : mode                = lcase(request("foo"))  

但是当我在Chrome中执行相同操作时,该值为空。

有人可以帮忙吗?

5 个答案:

答案 0 :(得分:5)

不同的浏览器对按钮有不同的默认提交行为。如果您想要一个按钮来提交表单(并因此发布其名称和值对),您将不得不使用:

<button type="submit" name="foo" value="bar" >foobar</button>

button类型属性可以提交按钮重置,除非这是明确指定的,因浏览器而异。

答案 1 :(得分:1)

你的报价遗失了。它应该是这样的:

<button name="foo" value="bar" onclick="submit()" >foobar</button>

此外,submit()是表单上的一种方法,因此您必须确保您的按钮位于<form></form>标记内。

来自W3C specification

  

重要:如果您在HTML表单中使用该元素,则不同   浏览器可以提交不同的值。 Internet Explorer,早期版本   9,将在<button></button>标签之间提交文字   其他浏览器将提交value属性的内容。使用   <input>元素用于在HTML表单中创建按钮。

答案 2 :(得分:0)

您需要引用您的属性:

<button name="foo" value="bar" onclick="submit()" >foobar</button>

“提交”也是JavaScript中的保留字。如果你有一个名为“提交”的功能,它可能无效。

保留字列表:http://www.javascripter.net/faq/reserved.htm

答案 3 :(得分:0)

如果您愿意,Google或其他人可以更轻松地找到您的表单。给按钮一个标题和alt:

 <button name="foo" title="submit" alt="submit for contact" valeu="" onclick="submit()" >foobar</button>

答案 4 :(得分:0)

根据我的记忆,IE的旧版本(甚至可能是8个)仅将好的旧<input type="submit" />视为“真实”提交按钮,该按钮是表单的一部分,从而发送其值。因此,此类浏览器中的<button>不会发送其值。

将HTML更改为此,它应适用于所有浏览器:

<input type="submit" name="foo" value="foobar" onclick="this.value = 'bar';" />

由于发送的值是看到的值,我不得不使用JavaScript技巧在点击时更改值 - 据我所知,如果不使用客户端脚本,则无法执行此操作。