2010-08-26 196 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