validate异步验证表单元素
使用ajax方式进行验证某个元素的值(只是验证元素的值,而不是ajax方式提交表单),默认会提交当前验证的值到请求的地址,如果要提交其它的值,可以使用data选项。
两种定义方式:
$("#formId").validate({
rules:{
username:{
required:true,
remote:"/SSHWT/test/test.action"
}
},
messages:{
username:{
required:"用户名不能为空!",
remote:"用户名错误!"
}
}
});
$("#formId").validate({
rules:{
username:{
/*验证规则*/
required:true,
/*异步验证*/
remote:{
type:"POST", /*提交方式 "POST"/"GET" */
url:"/SSHWT/test/test.action", /*请求的地址*/
dataType:"json", /*请求的数据类型*/
data:{ /*提交的数据*/
username:function(){
return $("#username").val();
}
}
}
}
},
messages:{
username:{
required:"用户名不能为空!",
remote:"用户名错误!" /*用户名在后台验证失败后显示的错误信息*/
}
}
});
后台代码
package com.ss.demo.action;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ss.common.action.base.BaseAction;
public class TestAction extends BaseAction {
private static final Logger logger = LoggerFactory.getLogger(com.ss.demo.action.TestAction.class);
private String username;
private boolean result;
public String test(){
if(username.equals("admin")){
logger.info("用户名正确");
result = true;
}else{
logger.info("用户名错误");
result = false;
}
return SUCCESS;
}
/*省略get set方法*/
}
struts配置文件代码
<package name="test" extends="commonJson" namespace="/test">
<action name="test" class="com.ss.demo.action.TestAction" method="test">
<result name="success" type="json">
<param name="root">result</param>
</result>
</action>
</package>
validate的ajax表单提交
$("#formId").validate({
rules:{
username:{
required:true
}
},
messages:{
username:{
required:"用户名不能为空!"
}
},
submitHandler:function(form){
$.ajax({
url:"xxx.action",
type:"POST",
dataType:"json",
data:{username:$("#username").val()},
success:function(msg){
alert(msg.data);
}
});
}
});
如上实例,validate的ajax请求是在表单验证后,提交表单。在submitHandler中定义。