2010-08-26 197 views
5

我无法得到一个表单提交时提交按钮的name属性恰恰是“提交”。表单提交按钮不会提交按钮时的名称是“提交”

下面是代码:我们不使用的“提交”标准的输入型

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="submit" type="button">

注意,而是“按钮,”用JavaScript的输入类型被用来提交表单验证脚本(checkForm)返回true后。

奇怪的是,当且仅当name属性为“提交”这是不行的。问题是大小写敏感的,所以下面的(以及任何其他的命名,其中包括没有名字属性)将工作:

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="Submit" type="button">

我一直在翻阅了保留名称的一些提到的W3C规范,而是我找不到任何东西。我怀疑我忽视的东西真的很明显这里,所以我希望你们一些在那里能看到的东西我不能。

感谢您的任何帮助。

+0

更好的去与'类型=“提交”' – 2010-08-26 00:50:54

+0

啊 - 我想,但我不能 - 我不会去的原因 - 这是一个很长的故事,它是不是一个决定我会做。 – 2010-08-26 00:51:54

回答

14

您遇到问题,因为namesubmit是压倒对于<form>form.submit()函数的引用,而不是form_29.submit指按钮,而不是DOM submit()功能。

+0

D'oh!谢谢!相当肯定,答案是... – 2010-08-26 00:49:48

+7

是的,这是所有的Netscape的过错原本决定该表单字段应该体现为'form'对象的命名属性,而不仅仅是'form.elements'集合在那里你会期待他们。这一点,以及对'document'命名元素的反射(和,在IE的偶数糟糕的情况下,'window')已经引起了无休止的问题。我们现在永远无法摆脱这种犯规错误的设计。该死的胖子,''面孔。 – bobince 2010-08-26 01:35:12