使用Ajax进行语义UI自定义表单验证

使用Ajax进行语义UI自定义表单验证,ajax,validation,semantic-ui,Ajax,Validation,Semantic Ui,我正在尝试为我的用户名字段实现自定义表单验证规则,它应该检查数据库是否重复 在互联网上搜索之后,我写了一些代码,它成功地从我的服务器得到了“真/假”的响应。但是表单中的字段并没有像应该的那样更新。下面是我的javascript代码 $.fn.form.settings.rules.checkUsername=函数(值){ var res=真; $.ajax({ async:false, url:“”, 类型:“POST”, 数据:{ 用户名:value }, 数据类型:“json”, 成功:功

我正在尝试为我的用户名字段实现自定义表单验证规则,它应该检查数据库是否重复

在互联网上搜索之后,我写了一些代码,它成功地从我的服务器得到了“真/假”的响应。但是表单中的字段并没有像应该的那样更新。下面是我的javascript代码

$.fn.form.settings.rules.checkUsername=函数(值){
var res=真;
$.ajax({
async:false,
url:“”,
类型:“POST”,
数据:{
用户名:value
},
数据类型:“json”,
成功:功能(数据){
如果(data.result==true){
console.log(data.result);
返回false;
}否则{
console.log(data.result);
返回true;
}
}
});
};
$('.ui.form').form({
用户名:{
标识符:“用户名”,
规则:[{
键入:“checkUsername”,
提示:“用户名已存在”
}]
}
//其他一些规则
}, {
是的,
在“模糊”上,
onSuccess:function(){
//投递给财务总监
}

});不知何故,在ajax上添加了异步解决了这个问题

$.ajax({
        async : false,
        url: '<?= Yii::app()->createAbsoluteUrl('home/doCheckUsername') ?>',
        type : "POST",
        async: false,
        data : {
            username : value
        },
        dataType: "json",
        success: function(data) {
            if (data.result == true) {
                console.log(data.result);
                res = false;
            }
        }
    });
$.ajax({
async:false,
url:“”,
类型:“POST”,
async:false,
数据:{
用户名:value
},
数据类型:“json”,
成功:功能(数据){
如果(data.result==true){
console.log(data.result);
res=假;
}
}
});

将结果放入res变量,并在ajax调用后返回res变量! 为我工作:

$.fn.form.settings.rules.checkemail = function(value) {
    var res = true;
    $.ajax({
        async : false,
        url: '../php/email_exist.php',
        type : "POST",
        async: false,
        data : {
            email : value
        },
        success: function(data) {
            console.log(data);
            if (data == "0") {
                console.log("OK");
                res = true;
            } else {
                console.log("KO");

                res = false;
            }
        }
    });
return res;
};    
$.fn.form.settings.rules.checkUsername=函数(值){
var res=真;
$.ajax({
async:false,
url:“”,
类型:“POST”,
数据:{
用户名:value
},
数据类型:“json”,
成功:功能(数据){
如果(data.result==true){
//console.log(data.result);
//返回false;
**数值=0**
}否则{
//console.log(data.result);
//返回true;
**数值=1**
}
}
});
**返回值(值==1)?真:假**
};
$('.ui.form').form({
用户名:{
标识符:“用户名”,
规则:[{
类型:'**checkUsername[值]**',
提示:“用户名已存在”
}]
}
//其他一些规则
}, {
是的,
在“模糊”上,
onSuccess:function(){
//投递给财务总监
}
});

您能否添加您修复的内容以及它现在工作的原因?仅仅一大块代码不太可能帮助其他人解决同样的问题。
$.fn.form.settings.rules.checkUsername = function(value) {
        var res = true;
        $.ajax({
            async : false,
            url: '<?= Yii::app()->createAbsoluteUrl('home/doCheckUsername') ?>',
            type : "POST",
            data : {
                username : value
            },
            dataType: "json",
            success: function(data) {
                if (data.result == true) {
                    //console.log(data.result);
                    //return false;
                    **value = 0;**
                } else {
                    //console.log(data.result);
                    //return true;
                    **value = 1;**
                }
            }
        });
         **return (value == 1 )? true : false;**
    };

$('.ui.form').form({
    username: {
      identifier : 'username',
      rules: [{
          type   : '**checkUsername[value]**',
          prompt : 'Username Already Exists'
        }]
    }
    // some other rules
  }, {
    inline : true,
    on     : 'blur',
    onSuccess : function(){
        //post to controller
    }
  });