2012-06-12 78 views
1

有一個唯一的ID表單提交在Chrome中無法正常工作,即

<form id='fu_edit_1' method='post' action=''> 
.... 
</form> 

<form id='fu_edit_2' method='post' action=''> 
.... 
</form> 

使用多種形式這個js代碼

var formName = 'fu_edit_'+id; 
document.forms[formName].submit(); 

所以這裏的代碼工作正常在FF的最後版本,但在鉻和即拒絕工作。但是,如果直接指定表單的ID,則可以使用,例如:

document.forms["fu_edit_2"].submit(); 

問題出在哪裏?


在控制檯中,鉻寫道:遺漏的類型錯誤:對象#有沒有方法「提交」

+2

可以肯定的是:你是否肯定'id'在你構造'formName'變量時有一個值? –

+0

「id」變量來自哪裏?它是如何填充的?你是否調試過這段代碼來檢查'formName'是否正確填充?看起來好像你將表單前綴字符串與'NaN'或其他表單字符串連接在一起 – MilkyWayJoe

+0

我檢查了id的存在。並在ff中選擇所需的表單。 – tranceman

回答

0

我覺得你的問題是與變量id我會建議你到這一點:

alert(id.toString()); 

也許有一個問題,你的號碼收斂到字符串,也許警報會讓你感到驚訝,如01或類似

+0

不,一切都應該如此,沒有01和其他 – tranceman

+0

一個問題,爲什麼你在顯式文本中使用雙引號,但在字符串中使用單引號?,對不起,它可能聽起來像是軟木塞,但我看到過很多奇怪的東西最近.. –

+0

它發生在實驗過程中 – tranceman

0

我碰到過這個問題多次,最後發現如果你有一個表單元素的fu_edit_2形式的名稱屬性爲submit,那麼document.forms [「fu_edit_2」]。submit將是一個對元素的引用而不是提交表單的方法。我發現最好遠離具有提交名稱的任何表單域來避開這個問題。

相關問題