JQuery Validate

使用JQuery插件Form.js 来进行表单验证的时候,发现使用ajaxForm 方法提交了后,无法正常页面转向。
例如:





Html代码:

<form id="myForm" method="post">
Name: <input type="text" name="name" />
Comment: <textarea name="comment"></textarea>
<input type="submit" value="Submit Comment" />
</form>


如果点击Submit Comment按钮,那么会弹出"Thank you for your comment!",但是再点击确定按钮后并不会使页面转向,但是该ajaxForm方法的正确执行是当server端成功返回了了一个success信号才执行的。可以通过如下方法来获得从server端返回的信息:


var options={
beforeSubmit: validate, //验证模块
success: showResponse, //接受从服务器返回的信息
}

$(document).ready(function() {
// bind 'myForm' and provide a simple callback function
$('#myForm').submit(function() {
$(this).ajaxSubmit(options);
});
});

function showResponse(responseText,statusText){
//responseText 接受从服务返回的信息
//statusText 接受从服务器返回的状态信息 成功则返回success
}


通过responseText参数就可以接受到从服务器来的内容了。所以这也是Ajax的一种页面更新方法。


看了邮件列表中的帖子的帖子后,忽然明白,ajax不就是为了少url重定向麻,所以JQuery Form validate中本来就不会页面转向,它只是把成功获得的页面以字符串responseText返回。所以如果要转向那么可以这样:


window.location="/personal/";


当然最好的办法就是不改变url的情况下,用JQuery的html()方法来实现:


$("#fillin").html(responseText);