使用Ajax进行语义UI自定义表单验证
我正在尝试为我的用户名字段实现自定义表单验证规则,它应该检查数据库是否重复 在互联网上搜索之后,我写了一些代码,它成功地从我的服务器得到了“真/假”的响应。但是表单中的字段并没有像应该的那样更新。下面是我的javascript代码使用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”, 成功:功
$.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
}
});