2012-11-23 100 views
1

Im一旦字段驗證,我很難從errorPlacement分配的區域中刪除錯誤。任何幫助真的很感激!jQuery驗證errorPlacement的刪除

$('document').ready(function(){ 
$('form').validate({ 
    rules: { 
     a: {required:true, minlength:2} 
    },  
    messages: { 
     a: {required: "enter your name!"}  
    }, 
    errorPlacement: function(error, element) { 
    if(element.attr('name') == 'a'){ 
     error.appendTo($('#restErrorDate'));      
    } 
    }, 
    success: function(error){ 

    }, 
    debug:true 
}); 
$('#a').blur(function(){ 
    $("form").validate().element("#a"); 
}); 
}); 

下面是HTML:

<div> 
<form action="#" id='commentForm'> 
    <input type="text" name="a" id="a"> 
</form> 
</div> 
<div id="restErrorDate" class="restErrorDate" style="border:1px solid blue;"></div> 

而這裏的jsfiddle:

http://jsfiddle.net/mmw562/Evxd9/

+0

您不需要整個$('#a')。blur()'函數。 [**默認**,驗證發生模糊('onfocusout')](http://docs.jquery.com/Plugins/Validation/validate#toptions)。見:http://jsfiddle.net/Evxd9/3/ – Sparky

+0

@ Sparky672:不適合我。我認爲這也很奇怪,但我想這是OP決定讓模糊驗證運行。 –

+0

@WesleyMurch:參見[http://jsfiddle.net/Evxd9/3/](http://jsfiddle.net/Evxd9/3/)。輸入1個字符並單擊字段外的任何地方以觸發模糊事件...對我工作正常。 – Sparky

回答

3

而不是追加(這將保持增加更多),只是簡單地覆蓋所有現有的HTML:

errorPlacement: function(error, element) { 
    if(element.attr('name') == 'a'){ 
     // error.appendTo($('#restErrorDate')); 
     $('#restErrorDate').html(error);     
    } 
}, 

演示:http://jsfiddle.net/Evxd9/2/