jquery.validate.js中提供的不仅仅是普通的非空校验和长度校验,现在要说的是validate的ajax校验
validate中ajax用的是remote字段的方式来校验
例子:需要判断用户名是否已经存在,已经存在就提示“用户已存在”
注意:remote从后台接收到的只有true和false,据说有其他,返回只能js封装
页面jsp:
<form id="inputForm">
...
<td class="td_header_l" width="35%">
<input type="text" name="keshiName" value="${keshiName}" class="text" id="keshiName"/>
</td>
...
</form>
js文件:
$(document).ready(function(){
event: "keyup",
$("#inputForm").validate({
rules:{
keshiName:{
maxlength: 10,
required:true,
remote :{
type:"POST",
url : "ag-keshi!ajaxKeshi.action", //后台框架是ssh
type : "post",
dataType : "json",
data:{
keshiName2:
function(){
return $("#keshiName").val();
}
}
}
},messages:{
"keshiName":{
remote:"用户已存在"
}
}
});
});
后台java代码:【后台框架是ssh,strutsaction的方式非常恶心】,
public String ajaxKeshi()throws Exception{
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String message = agKeshiService.checkDouble2(keshiName2);
if(message !=null && message .length()>0){
out.print(false);
}else{
out.print(true);
}
return null;
}