DWR提供的JS方法调用默认是异步的,所在在form提交的同时,会出现验证明明执行了return false之类的代码后,表单却依然提交。表面看起来似乎验证没有起到作用,事实并非如此。
以dwr3.0为例:
$('#form').bind('submit',function(){
var code=$('#ruleCode').val();
var flag="";//存放ajax返回的结果数据
dwr.engine.setAsync(false); //DWR提供的JS方法调用默认是异步的,为了得到同步的运行结果
ScoreRuleAjaxService.uniqueCode(code,function(data){//执行后台验证
flag=data;
});
dwr.engine.setAsync(true);//设置异步
//处理返回结果
if(flag=="true"){
alert("编码已经存在,请更换编码!");
$('#ruleCode').focus();
return false;
}
});