【问题标题】:Javascript not finding first formJavascript找不到第一种形式
【发布时间】:2017-10-26 16:15:40
【问题描述】:

我正在努力解决 javascript/jquery 问题。我有在 foreach 循环中创建的多个表单和在 foreach 循环中创建的多个 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());

当我尝试序列化数据并提醒它时,第一个提醒返回空白,第二个提醒显示第二个表单已序列化。

为什么没有找到第一个表单?

我将非常感谢任何帮助!

【问题讨论】:

  • 这是给出您描述的结果的示例吗?因为您没有带有name=3 的表单,所以第一个警报应该可以工作,而第二个不应该
  • 问题应该是警报 1 和警报 2 而不是 2 和 3。
  • 如果我在 id 中的数字前添加一个字母,你认为它会起作用吗?
  • 它就像你拥有它一样工作jsfiddle.net/f9pp06a3我将名称更改为1和2
  • 很难说没有看到更多的 JS,但它也可能,看看这个 css-tricks.com/ids-cannot-start-with-a-number 在我说类和 IDS 但我错了,显然它只是 ID,但我从不这样做两者都有,只是为了保持一致

标签: javascript jquery forms


【解决方案1】:

从您发布的代码中(除非这是您的帖子中的错误),您实际上是从第一次调用而不是第二次调用中获得序列化警报。您在警报中的选择器错误

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

所以您在表单的名称参数中放置的值,然后在警报中的选择器中放置的值不匹配。它们应该是:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多