自己写的表单验证,表单提交老是有问题
代码如下
<form name="" id="register_form" method="post" action="">
<tr>
<td>{$lang.user_name}:</td>
<td><input type="text" id="user_name" name="user_name" class="text width10" /></td>
<td class="padding3 fontColor4"><label id="checking_user">用于登录的名字</label></td>
</tr>
</form>
jquery代码
$(document).ready(function(){
$("#register_form input[name=user_name]").blur(function(){
check_user_name();
});
$("#register_form").submit(function(){
check_user_name();
})
});
//检测用户名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 {
check_same_user(value,check_id); }
}
//检测用户名是否存在
function check_same_user(val,id){ var url = SITE_URL + '/index.php?app=checks&type=user';
reload_s(id); $.ajax({
'type': 'GET', '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('可以注册'); return true;
} else { reload_r(id);
message = "用户名已经存在!"; return_message(id,message);
alert('用户名已经存在'); return false;
}
} });
}

提示的也没问题,可是表单还是提交了,请问这是什么原因
------解决方案--------------------
你ajax回调函数里面return内容没意义。。你的check_same_user函数要返回true,false才行,而且ajax必须要指定为同步的,要不无法接受ajax返回值