2017-05-25 30 views
-1

我正在努力解決一個javascript/jquery問題。我有在foreach循環中創建的多個表單以及在foreach循環中創建的多個javascript函數。Javascript未找到第一個表格

從本質上講,第一種形式是這樣的:

<form role="form" action="/save/parishioner" id="1" name="1" method="post"> 
<input type="text" class="form-control" name="acct_number" id="acct_number" value="test" onchange="save1()" /> 
<input type="text" class="form-control" name="first_name" id="first_name" value="name" onchange="save1()"/> 
</form> 

第二種形式是這樣的:

<form role="form" action="/save/parishioner" id="2" name="2" method="post"> 
<input type="text" class="form-control" name="acct_number" id="acct_number" value="test" onchange="save2()" /> 
<input type="text" class="form-control" name="first_name" id="first_name" value="name" onchange="save2()"/> 
</form> 

及其功能如下:

alert($('form[name="2"]').serialize()); 
alert($('form[name="3"]').serialize()); 

當我嘗試序列化數據並提醒它,第一個警報返回空白,第二個警報顯示第二個表單序列化d。

爲什麼找不到第一種形式?

我將不勝感激任何幫助!

+0

這是給出你描述的結果的例子嗎?因爲你沒有'name = 3'的表格,所以第一次警報應該工作,第二次不應該 – Lixus

+0

問題應該說警報1和警報2,而不是2和3. – user1687763

+0

你認爲它會工作嗎?如果我在ID中的數字之前加了一個字母? – user1687763

回答

1

從您發佈的代碼(除非這是您的文章中的錯誤),您實際上是從第一次調用獲得序列化警報,而不是第二次。您在警報選擇是錯誤的

alert($('form[name="2"]').serialize()); 
alert($('form[name="3"]').serialize()); 

讓你在表格的名稱param開頭的放置和值,那麼在你的警報選擇不匹配。他們應該是:

alert($('form[name="1"]').serialize()); 
alert($('form[name="2"]').serialize());