2010-09-23 30 views
0

我想在提交錯誤表單時使用'jquery validate'插件時得到錯誤容器的高度,但我似乎無法獲得錯誤容器的高度值錯誤容器出現時。警告框甚至沒有顯示。請問有什麼解決方法?jquery驗證捕捉錯誤容器的高度

下面的代碼:

$(".validate").validate({ 
    rules: { 
     j_username: "required" 
    }, 
    submitHandler: function(form) { 
     //$(":submit", form).attr("disabled","disabled").val("Please wait...."); 

     $(":submit", form).attr({ 
           disabled: "disabled", 
           value: "Please wait...." 
           });   


     var errH = $("#errorMsgContainer").height(); 
     if($("#errorMsgContainer").is(":visible")){  
      alert("visible and '#errorMsgContainer' height is: " + errH); 
     } 
     else{ 
      alert("Not visible and '#errorMsgContainer' height is: " + errH); 
     } 

     form.submit(); 

     return false; 
    }, 
    messages: { 
     j_username: "Please type your email address correctly!", 
     j_password: "Your password and username do not match!" 
    }, 
    ignore: ".catalogueDD", 
    errorLabelContainer: $("#errorMsgContainer") 
}); 

感謝。

回答

0

如果元素不佔用文檔中的任何空間,然後是(「:隱藏」)將返回true,即使它是清晰可見,它可能會更安全,而不是這樣做:

if(!$('#errorMsgContainer').is(':visible')) { 
    // it's hidden, do something 
} 
else { 
    // it's not hidden so do something else 
} 

消息來源:: http://www.electrictoolbox.com/jquery-element-is-visible/

+0

@ From.ME.to.YOU:謝謝你的回覆!我只是嘗試了你的解決方案,但當我點擊提交按鈕時沒有任何反應。我不確定,但我認爲在「驗證」插件中發生「事件」時這與事情有關。我想要的只是在出現錯誤容器時檢索高度。由於DOM被加載,我不明白爲什麼應該有任何問題,但它越來越討厭... – Shaoz 2010-09-23 17:32:19

+0

1)您的#errorMsgContainer是div或什麼? 2)您是否在DOM加載後運行此代碼? – trrrrrrm 2010-09-23 17:35:49

+0

是的,它是一個div,代碼位於'$(document).ready(function(){})'中。 – Shaoz 2010-09-23 17:46:13