$(function(){
//定义标记,判断能否提交表单
var flag = false;
$("#username").blur(function(){
var username = $(this).val().trim();
if(username.length<6||username.length>20){
$("#spanName").html("注册名长度6~20");
flag = false;
return;
}else{
$("#spanName").html("<img src='/book/image/ok.png' width='10%' ></img>");
}
$.ajax( {
url:'/book/user/validate.do',// 跳转到 action
data:{
username : username,
},
type:'post',
dataType:'json',
success:function(data) {
if(data=="yes"){
$("#spanName").html("<img src='/book/image/ok.png' width='10%' ></img>");
flag = true;
return;
}else{
$("#spanName").html("用户名已存在");
flag = false;
return;
}
},
error : function() {
alert("err");
}
});
});
.............
//提交表单
$("#register").click(function(){
$("input").blur();
if(flag){
$("#registerId").submit();
}
});
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个 flag 理解一个开关,如果为 true 即打开, 才提交表单,为 false 则不提交,
这样做的目的是,在前端页面对表单内容进行判定,若不合格的数据,就不提交,减少服务器不必要的负载。
当然 判定的方法很多, 使用一个 flag 的目的还是使代码更简介、清晰。
其中:
判断是否要表单提交啊,每次点击提交触发这个事件,flag默认是false,说明不满足以上条件,如果它已经验证了username是对的,那就让flag为true,这样才能继续提交啊.
flag标记,只有为true时,点击事件click才能触发 $("#registerId").submit();提交表单。。如果为false就提交不了,也就等于为false时禁用了click提交动作,这个还可用于动画函数防止动画被多次重复触发等等- -
就是一个开关判断能不能提交表单。不过,这段代码有bug,如果在触发ajax但是还没有调用success的时候,flag是ture,如果不符合条件点击提交按钮依旧是可以提交的。
这段代码有bug。flag=true应该写在success的回调里面。