2011-04-26 63 views
1

我有一個手風琴JQuery UI控件,它顯示了兩組不同的字段。至少必須啓用一個設置,如果啓用,則需要爲其他設置禁用驗證。動態實現這真是令人沮喪。將事件附加到JQuery驗證和禁用字段

最後,我決定在提交之前刪除驗證規則,然後對已摺疊的一組字段進行提交。 (所以用戶不需要填寫該組)。但是,即使如此,我似乎無法弄清楚如何將事件附加到將在驗證之前運行的表單的提交事件!我是在JQuery驗證之前運行的這個函數。我正在使用MVC3。下面是一些我的代碼如下所示:

<div id="accordion"> 
      <h3><a href="#">Option Set 1</a></h3> 
      <div> 
       [Set of fields here]    
      </div> 
      <h3><a href="#">OR Option Set 2</a></h3> 
      <div> 
       [Set of fields here] 
      </div> 
     </div> 

回答

1

我對ASP.NET MVC根本不熟悉,但我熟悉jQuery(以及驗證插件),所以在這裏。

我想你需要使包含<div>的所有字段在你的表單部分被渲染的時候關閉。它可以像$("selector for div").find(":input").attr("disabled", true);一樣簡單(您可以使用false而非true將其重新翻轉)

這應該是最好的,原因有兩個。

  1. jQuery的驗證插件將跳過任何禁用的元素,當表單發佈
+0

這是我嘗試的第一件事情之一 - 直到我選擇正確的選項後才能正確完成。謝謝! – KTF 2011-04-28 19:27:28

1

當您切換的div只是刪除需要驗證方法的類和禁止輸入

+0

  • 禁用的元素不會被髮送到服務器,這是我的第一場演出......但我想我做錯了。在Dominic Barnes的幫助下,我發現了它! – KTF 2011-04-28 19:26:35