2014-03-27 66 views
0

我會盡量保持這個儘可能的簡單,對不起,如果它的混亂..獲取驗證形式爲工作在領域已被刪除

我已經建立了(不要問爲什麼)一使用jQuery/JS在wordpress網站上自定義驗證表單。 一般的想法是我有一個數組,它應該檢查輸入字段的ID。所以,這樣的例子不勝枚舉:

toValidate=new Array(); 
toValidate[0]="#name";  
toValidate[1]="#location"; 
toValidate[2]="#method"; 

,並循環使用他們。每個$(toValidate),然後如果他們是空給出了一個彈出窗口,然後做一些其他的東西一樣加入紅邊框的字段。現在所有這些工作正常。但我有另一個問題。我有幾個始終需要的字段,但我也有一個複選框,當他們檢查它時,TR應該被刪除,TR中有幾個字段需要顯示。

現在的問題是,即使我點擊複選框,因此刪除TR,我無法讓它工作,以便刪除TR所需的字段不再需要。我嘗試了多種方式,但根據我嘗試的解決方案不斷得到不同的問題。

我試過的一個例子是更改數組,以便如果他們選中該框,它將刪除幾個數組對象(那些在被刪除的行中的數組對象)。但它不起作用,它就好像它們仍然在那裏一樣。

對不起,我試圖問這是什麼最好的做法在這裏做?你會怎麼做?我不想要代碼,只是一個普遍的想法,我應該如何計劃它,因爲我卡住了......

編輯:我忘了提及,我對數組的方式可能也是一個毫無價值的想法,所以任何有關如何改進並使之發揮作用的想法值得讚賞。

回答

0

不是在javascript中添加/刪除可見性,而是在css中執行此操作。驗證時它會簡化你的選擇器。

CSS:

table tr.ignore { 
    visibility: hidden; 
} 

的javascript:

$('input.hide_thing').click(function() { 
    $('tr.whatever_tr').toggleClass('ignore', !$(this).checked) 
}); 

驗證:

$('tr:not(.ignore)').validate(); 
+0

這完美地工作,我有很多重寫做,使其工作,但沒有這我甚至不會接近..謝謝! – nyy

0

您可以通過檢查元素是否可見來驗證驗證。

$.each(toValidate, function(index, element) { 

    if (!$(element).is(':visible')) return; 

    // ... proceed to validate 
});