2009-09-10 32 views
1

我使用從Jörn Zaefferer at bassistanceJQuery驗證和asp.net - 明確的規則?

我使用asp.net美妙的jquery .validate插件,所以具有一個長的形式,儘管形式經由一個jquery手風琴分成3段與按鈕之間進行切換手風琴窗格。

我想在一個面板中的按鈕來驗證窗格一個領域,同樣有窗格二個等

很顯然,在其他任何技術,我會去多種形式,沒有任何難度可言,雖然我在.net中無法做到這一點。

認爲我需要的是幾乎$('#aspnetForm').validate().unbind()或類似的東西 - 手風琴點擊我要求重新驗證表單,所以我知道我在哪個頁面,然後我可以只安裝新規則等

我試圖清理出的規則$('#aspnetForm').validate().rules('remove')但它似乎我將不得不爲每個字段,而不是形式本身做到這一點?

我可以發佈任何必要的代碼示例,但現在總體腳本很大,所以我不得不挖掘塊。

希望我在上面提出合乎邏輯的意見 - 基本上,這是一種清除所有規則的手段,因此我可以創建新的規則,因爲我在不同的手風琴面板上是我希望的解決方案,正在掙扎。

非常感謝, 特里

回答

1

這確實是我正在做的事情,經過長時間的螢火蟲工作,似乎其中一個選擇器沒有被清除,所以錯誤的規則被加載了。

現在他們已解決,每次調用.validate都有自己的一組規則,並且不點擊(說).click事件,但它們看起來不具備附加性,因此page1.validate和3個規則清除了所有page2.validate規則。

感謝您的意見,儘管idrumgood,標誌着你的答案說感謝任何輸入。

乾杯, 特里

1

時,顯示像

<div id="form_section_1" class="displayed"> 
    .... 
</div> 
<div id="form_section_2"> 
    .... 
</div> 
<div id="form_section_3"> 
    .... 
</div> 

然後在你的驗證規則形式的任何部分,我會嘗試有一個標誌設置,使他們有條件的。

if($('#form_section_1').attr('class').search('displayed') != -1){ 
    var is_section_1_displayed = true; 
} 
else{ var is_section_1_displayed = false; 

做到這一點對每一個(可能是更有效的方式)

然後在你的驗證規則做類似

email: { 
     required = is_section_1_displayed; 
     } 

假設email是形式的第一部分。