2012-12-21 52 views
0

我正在使用jQuery驗證,並將我的錯誤寫入div,它工作正常。我想要做的是隱藏div,當驗證返回任何錯誤時,div顯示在窗體的頂部。我不確定顯示div的正確觸發。jQuery errorPlacement submitHandler

這是我有:

HTML:

<div id="valwrapper" class="hide"> 
    Validation Errors<br/><br/> 
     <div id="valerrors"></div> 
    </div> 

的JavaScript:

errorPlacement: function (error, element) { 
    $('#valerrors').append(error); 
}, 

submitHandler: function(){ 
    $("#valwrapper").slideDown("fast"); 
}, 
errorContainer: "#valerors", 
//errorLabelContainer: "#valerrors", 
//wrapper: "span", debug: true, 
onfocusout: false, 
onkeyup: false, 
onclick: false 

回答

0

這是完整的答案。不妨將它發佈,因爲我一直在努力。

您不需要errorPlacement:因爲插件自動爲您處理此當您使用errorLabelContainer:

http://jsfiddle.net/SaLNp/4/

$('form').validate({ 
    invalidHandler: function() { 
     $("#valwrapper").slideDown("fast"); 
    }, 
    errorContainer: "#valwrapper", 
    errorLabelContainer: "#valerrors", 
    wrapper: "span", 
    onfocusout: false, 
    onkeyup: false, 
    onclick: false 
});​ 

文檔:

http://docs.jquery.com/Plugins/Validation/validate#toptions

0

夥計們,只是我的一部分愚蠢。代碼應該有「invalidHandler」而不是「submitHandler」。

+0

見我的答案,這使得幾小調整。例如,你根本不需要指定'errorPlacement:',因爲插件會自動使用'errorLabelContainer:'選項。 – Sparky