2017-05-25 56 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()); 
相关问题