2011-04-26 62 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