2011-04-26 61 views
0

这可能比较容易查看此琴:http://jsfiddle.net/Ahfm7/4/禁用和重新启用动态表单元素使用jQuery

只有在下拉菜单中的代理和推广价值都在这个时候得到落实。

我遇到了一些错误,我希望有人能帮助解决。

  • 第一种是当你添加的下拉列表中的一个新行,而不选择在第一任何东西,继续选择第二个选项,形式可以提交。

  • 同样,如果您在第一行中选择一个选项,然后添加另一个选项并将其删除,则提交按钮将保持禁用状态。

我只是想知道如果有人知道如何解决这个问题?

+3

只是很有礼貌,不需要对此表示不开心 – martincarlin87 2011-04-26 13:43:46

+0

如果您在小提琴中编写js,这些看起来很简单 - 您真的不知道如何解决这两个问题吗? – Hogan 2011-04-26 13:50:43

+0

是否有任何CSS与提交按钮上的'disabled'和'advancedsubmit' _classes_关联?否则,我没有看到添加/删除这些类的任何意见。另外,它看起来不像'extension'选项已经实现。我只看到'代理人'。 – 2011-04-26 13:54:06

回答

1

我开始清理代码。我把JS的700多行裁减到更易于管理的东西,但是你应该能够理解这个总体思路。

http://jsfiddle.net/mattball/5ubTe/

一般来说:通过高速缓存的jQuery通过写更多,更小的函数,它们含有一般重用逻辑(如enableSubmitButton函数对象

  • 逗留DRY

    • 避免重新查询DOM我加)
    • 别忘了用var
  • +0

    谢谢,jsfiddle网站似乎目前进展缓慢,所以可能是这样,但添加(和删除)下拉菜单似乎不起作用。该类是否只启用了提交按钮?另外,你为什么要评论一些需要的内容? – martincarlin87 2011-04-26 14:57:30

    +0

    是的,自从jsFiddle运行缓慢以来,我休息了一会儿。我注释掉了像$(this).next(“select [name ='values'] option”)。remove();'这样的行,因为前面的行已经完成了相同的逻辑:'$ operands.next(“ select.values“)。空()'。 – 2011-04-26 15:02:13

    +0

    我明白了,但我不明白为什么这两行代码都做同样的事情 - 非常类似,但是这些代码会删除第二个和第三个下拉列表中可能存在的选项,这些选项的值由选择的值第一个列表? – martincarlin87 2011-04-27 08:27:48