php jquery表单验证
提示的也没问题,可是表单还是提交了,请问这是什么原因
[解决办法]
你ajax回调函数里面return内容没意义。。你的check_same_user函数要返回true,false才行,而且ajax必须要指定为同步的,要不无法接受ajax返回值
$(document).ready(function(){
$("#register_form input[name=user_name]").blur(function(){
check_user_name();
});
$("#register_form").submit(function(){
if(check_user_name()==false)return false;//验证不通过返回false阻止表单提交
})
});
//检测用户名
function check_user_name(){
var check_id = "checking_user";
var value = $("#user_name").attr("value");
var message = ""; //检测长度
if(value.length < 3) { message = "用户名必须在3-15个字符之间";
return_message(check_id,message);//这里是把提示警告文字显示在用户名input后面 alert('用户名过短');
return false; } else {
return check_same_user(value,check_id); }
}
//检测用户名是否存在
function check_same_user(val,id){
var ok=false;
var url = SITE_URL + '/index.php?app=checks&type=user';
reload_s(id);
$.ajax({
'type': 'GET',
async:false,
'url': url,
'cache': false, 'dataType' :"html",
'data':{"val":val}, 'success': function(data) {
if(data == 'ok'){ reload_r(id);
message = "ok!"; return_ok(id,message);
alert('可以注册'); ok= true;
} else { reload_r(id);
message = "用户名已经存在!"; return_message(id,message);
alert('用户名已经存在'); ok= false;
}
} });
return ok
}