AJAX同步刷新
jq语法
html代码
<div class="page animsition" style="animation-duration: 800ms; opacity: 1;">
<div class="page-content container-fluid">
<div class="panel-heading">
#if($t.id)
<h3 class="panel-title">角色修改</h3>
#else
<h3 class="panel-title">角色添加</h3>
#end
</div>
<div class="panel-body">
<form name="addForm" class="form-horizontal fv-form fv-form-bootstrap" autocomplete="off" novalidate="false" action="save3.do" method="post" onsubmit="return checkForm();">
<button type="submit" class="fv-hidden-submit" style="display: none; width: 0px; height: 0px;"></button>
<div class="summary-errors alert alert-danger alert-dismissible" style="display: none;">
<button type="button" class="close" aria-label="Close" data-dismiss="alert">
<span aria-hidden="true">×</span>
</button>
<p>Errors list below: </p>
<ul></ul>
</div>
<div class="form-group form-material">
<input type="hidden" class="form-control" name="id" #if($t.id) value="$t.id" #end/>
#if(!$t.id)
<input type="hidden" name="ctype" value="5"/>
#else
<input type="hidden" name="ctype" value="$t.ctype"/>
#end
</div>
<div class="form-group form-material">
<label class="col-sm-3 control-label">角色名</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="roleName" minlength="1" maxlength="20" data-fv-field="cname" #if($t.roleName) value="$t.roleName" #end novalidate="false" />
<small class="help-block" data-fv-validator="notEmpty" data-fv-for="cname" data-fv-result="NOT_VALIDATED" style="display: none;">角色名不能为空</small></div>
</div>
<div class="form-group form-material">
<label class="col-sm-3 control-label">描述</label>
<div class="col-sm-9">
<textarea id="form-control" class="form-control" name="description" rows="5" maxlength="200" data-fv-field="description">#if($t.description) $t.description #end</textarea>
<small class="help-block" data-fv-validator="stringLength" data-fv-for="description" data-fv-result="NOT_VALIDATED" style="display: none;">内容不能超过200个字符</small></div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary waves-effect waves-light">提交</button>
</div>
</form>
</div>
</div>
</div>
js代码
function checkForm(){
var type=true;
var o=$("[name='roleName']").val();
var p=$("#form-control").val();
if(o===''||p===''){//判断角色名或描述不能为空
alert("角色名或描述不能为空!");
type===false;
}
$.ajax({
url:"$ctx/manage/apkRole/ajaxDate.do",//后台处理的逻辑,在这个地方,是个路径
data:{"ok":o},//ok是传输的数据,在下个界面用request获取
type:"post",//传输方式post
dataType:"json",//数据类型:文本(后台传过来的类型)
async:false,
success:function(d){//如果成功的话
if(d===false){
alert("该角色已存在!");
type=false;
}
}
});
return type;
}
- 错误总结:处理业务时没加同步锁(async:false),导致ajax异步验证