利用ajax验证用户名是否已经注册过时,总是提示用户名已被注册,有时会正常。
利用的是brophp,
前台ajax
$(function(){
function check_user_name_ajax(){
var flag=false;
$.ajax({
async:false,
type:'post',
url:'<{$app}>/register/check_user',
data:'name='+$("#username").val(),
success:function(data){
//alert(flag); //此处可以alert出flag的值为false
if(data==0){
//alert(flag); //此处没有反应
flag = true;
}
}
})
return flag;
//alert(flag); //此处也无反应
}
//验证用户名
function check_user_name(){
flag=false;
username=$('#username');
if(username.val()==''){
username.next('span').text('用户名不能为空').css('color','red');
}else if(getlength(username.val(),'utf8')<3 || getlength(username.val(),'utf8')>15){
username.next('span').text('用户名由3 到 15个字符组成').css('color','red');
}else if(/['"\s()-]/.test(username.val())){
username.next('span').text('用户名不能含有特殊字符').css('color','red');
}else if(parseInt(username.val())){
username.next('span').text('用户名不能已数字起头').css('color','red');
}else if(!check_user_name_ajax()){
//alert(1111);
username.next('span').text('此用户已被抢注').css('color','red');
}else{
username.next('span').text('ok').css('color','green');
flag=true;
}
return flag;
} //后台php处理代码
public function check_user(){
$userinfo=D('user')->field('id')->where(array('name'=>$_POST['name']))->find();
if($userinfo){
echo '1';
}else{
echo '0';
}
}
利用的是brophp,
前台ajax
$(function(){
function check_user_name_ajax(){
var flag=false;
$.ajax({
async:false,
type:'post',
url:'<{$app}>/register/check_user',
data:'name='+$("#username").val(),
success:function(data){
//alert(flag); //此处可以alert出flag的值为false
if(data==0){
//alert(flag); //此处没有反应
flag = true;
}
}
})
return flag;
//alert(flag); //此处也无反应
}
//验证用户名
function check_user_name(){
flag=false;
username=$('#username');
if(username.val()==''){
username.next('span').text('用户名不能为空').css('color','red');
}else if(getlength(username.val(),'utf8')<3 || getlength(username.val(),'utf8')>15){
username.next('span').text('用户名由3 到 15个字符组成').css('color','red');
}else if(/['"\s()-]/.test(username.val())){
username.next('span').text('用户名不能含有特殊字符').css('color','red');
}else if(parseInt(username.val())){
username.next('span').text('用户名不能已数字起头').css('color','red');
}else if(!check_user_name_ajax()){
//alert(1111);
username.next('span').text('此用户已被抢注').css('color','red');
}else{
username.next('span').text('ok').css('color','green');
flag=true;
}
return flag;
} //后台php处理代码
public function check_user(){
$userinfo=D('user')->field('id')->where(array('name'=>$_POST['name']))->find();
if($userinfo){
echo '1';
}else{
echo '0';
}
}
你可以试下直接写字符串的形式,再试下。
function check_user_name_ajax(){
var flag=false;
$.ajax({
async:false,
type:'post',
url:'<{$app}>/register/check_user',
data:'name='+$("#username").val(),
success:function(data){
//alert(flag); //此处可以alert出flag的值为false
if(data==0){
//alert(flag); //此处没有反应 data 等于1的时候自然不会有反应
flag = true;
}
}
})
return flag;
//alert(flag); //此处也无反应 都返回了,怎么还会执行
}
alert(data); 此处alert出的值为0
}