2011-10-31 65 views
-1

我的CSS知識有點有限。jquery.validate錯誤放置

想彰顯在左DIV標籤時,右DIV

messages: { 
    userID: "" 

}, 
errorElement: "span",  
    errorPlacement: function(error, element) {   
    element.siblings("label").append(error);  
    },  
    highlight: function(element) {   
    $(element).parent().children("div.left label").addClass("error");  
    },  
    unhighlight: function(element) {   
    $(element).parent().children("div.left label").addClass("error");  
    } 


<div class="left"> 
<label for="userID">Username:</label> <br /> 
</div> 
<div class="right">  
<input type="text" name="userID" id="userID" onkeyup="nospaces(this)" maxlength="15" onBlur="checkUID(this)" onKeyPress="hideWarning()"> 
</div> 

目前「無」情況發生,沒有錯誤,沒有亮點出現錯誤。我不確定如何修改errorPlacement腳本以符合。 Thx太棒了。

回答

0

如果希望所有的標籤與錯誤類高亮顯示,使用setdefaults()函數:

if (jQuery.validator) { 
    jQuery.validator.setDefaults({ 
     /* Place error labels below invalid fields */ 
     errorPlacement: function(error, element){ 
      $('label[for=' + element.attr('id') + ']').addClass("error"); 
     } 
    }); 
} 

$('#commentForm').validate(); 

http://jsfiddle.net/iknowkungfoo/dvyqN/1/

+0

Oy,我顯然不習慣這個論壇....我沒有看到您的評論,這將工作。謝謝! – user1022348

0

變化

$(element).siblings("label").addClass("error"); 

$(element).parent().children("div.left label[for='password']").addClass("error"); 

當它在左側DIV這將選擇標籤。爲.removeClass()做同樣的事情。最後,如果您希望規則通常適用於所有字段,那麼您也可以對選擇器不太具體,只需使用div.left label而不是div.left label[for='password']

+0

完美。非常感謝你。 – user1022348

+0

沒問題。此外,請務必關閉您的'

+0

再次感謝! – user1022348