2012-10-27 50 views
0

我有一個窗體有很多輸入字段,當我提交驗證錯誤發生在窗體前頂部。我的問題是當錯誤消息驗證錯誤發生時如何使窗口滾動到div#msg我的光標在頁面底部?jquery-當發生錯誤窗口滾動到特定的地方

<div id="msg"><ol></ol></div> 
<form id="myform"> 
    <input type="text" name="field1"/> 
    <input type="text" name="field2"/> 
    <input type="text" name="field3"/> 
    ... 
    <input type="text" name="fieldn"/> 
    <input type="submit" value="submit"/> 
</form> 

<script type="text/javascript"> 
$().ready(function() { 

var options = { 
    success:  showResponse 
    }; 

var container = $('#msg'); 
var validator = $("#myform").validate({ 
    messages: { 
     field1: { 
      required: "message", 
     }, 
     fieldn: { 
      required: "message", 
     }, 
    }, 
    errorContainer: container, 
    errorLabelContainer: $("ol", container), 
    submitHandler: function(form) { 
      jQuery(form).ajaxSubmit(options); 
    }, 
    wrapper: 'li', 
    meta: "validate", 
}); 

function showResponse(responseText, statusText, xhr, $form) { 
      alert(responseText); 
      validator.resetForm(); 
} 
}); 
</script> 

回答

0

你需要插入一個jQuery動畫函數調用到您的回調函數showResponse是它返回的驗證錯誤。

嘗試:

$("html,body").animate({scrollTop:$('div#msg').offset().top}, 500);

+0

功能showResponse方法展示當驗證成功,而不是當一個驗證錯誤。 – casper