2012-02-23 29 views
1

全部, 我使用的是Wordpress,我正在使用一些簡碼來顯示切換功能。我使用的主題是樂居和切換功能的例子可以在這裏找到:如果字段未顯示,jQuery驗證器不工作

http://themeforest.net/item/mingle-multipurpose-wordpress-theme/full_screen_preview/235056

您可以點擊簡碼 - >選項卡和切換

這完美的作品,我有形成一些領域。如果切換打開,那麼jQuery Validator工作正常。但是,如果切換是關閉的,jQuery不會重新確定它們中有字段,並且不檢查它們是否有值。有沒有解決這個問題的方法?

編輯:這是我目前的jQuery:

$("#register").validate({ 
    ignore: "", 
    rules: { 
     vendor_email: { 
      required: true, 
      email: true 
     }, 
     vendor_name: "required", 
     zip: "required", 
    }, 
    messages: { 
     vendor_email: { 
      required: "<br>Please enter an email address!<br><br>", 
      email: "<br>Please enter a valid email address!<br><br>" 
     }, 
     vendor_name: "<br>Please enter your vendor name!<br><br>", 
     zip: "<br>Please enter a zip code!<br><br>", 
    }, 
    highlight: function(element, errorClass) { 
     alert(element); 
     $(element).closest('togDesc').show(); 
     $(element).closest('toggleItem').find('.minus').removeClass('minus').addClass('plus'); 
    }); 
}); 

高潮部分導致錯誤並沒有被驗證。任何想法爲什麼?

在此先感謝!

回答

2

默認情況下,jQuery驗證忽略隱藏的字段。改變忽略空:

$("#form").validate({ 
    ignore: "", 
    ... 
}); 

如果這些元素是隱藏的,你可能希望通過編程切換其父開:

$("#form").validate({ 
    ignore: "", 
    highlight: function(element, errorClass) { 
     $(element).addClass(errorClass); 
     if(!$(element).is(":visible")) { 
      $(element).closest('togDesc').show(); 
      $(element).closest('toggleItem').find('.minus').removeClass('minus').addClass('plus'); 
     } 
    }); 
} 

可能有一個內置的功能切換的交融這個開放,但是這也應該這樣做。

+0

非常感謝!這工作完美!但是,由於這些字段可能會隱藏,因此只需另外追加一次,我可以針對驗證失敗的所有字段發出警報嗎? – user1048676 2012-02-23 17:41:44

+0

看我的編輯。如果出現錯誤,我會切換打開的字段的父級。或者您可以在'highlight'選項代碼中添加警報代碼。 – 2012-02-23 17:53:36

+0

感謝您的建議。我添加了完整的jQuery驗證代碼。如果我添加高亮部分,那麼它根本不會進行驗證。 – user1048676 2012-02-23 18:08:14