【发布时间】:2021-10-10 06:50:35
【问题描述】:
我在这里检查输入是否已经在数据库中。我得到了回调函数响应,但如果函数为假,它不会显示错误。我想像其他规则一样打印该错误消息。其他规则错误信息显示正确。
回调函数成功返回1,否则返回0
//html
<form action="" method="post" id="addGroup" name="addGroup">
<div class="form-group">
<label for="input-1">Name*</label>
<input type="text" class="form-control" name="Groupname" id="Groupname" placeholder="Enter Group Name" required>
</div>
<div class="form-group">
<button type="submit" class="btn btn-light px-5"><i class="icon-lock"></i> Add Group</button>
<a href="<?php echo base_url('admin/groups'); ?>"><button type="button" class="btn btn-light px-5"><i class="icon-lock"></i> Cancel</button></a>
</div>
</form>
// jquery validation
$( "#addGroup" ).validate({
errorClass: "invalid",
validClass: "success",
rules: {
Groupname: {
required: true,
minlength: 5,
onfocusout:function( element, event ) {
if (element.value != '' && element.value.length > 4) {
$.ajax({
url : '<?php echo base_url("admin/checkGroupName"); ?>',
type : 'post',
data : {"groupName":element.value},
success: function(data){
if (data)
return true;
else {
return false;
}
}
});
}
}
}
},
messages: {
Groupname: {
required: "Please provide a valid roup Name",
minlength: "Your group name must be at least 5 characters long",
onfocusout:"Group Name already exist"
}
},
submitHandler: function(form) {
form.submit();
}
});
【问题讨论】:
-
也显示您的 html。甚至是可执行代码
-
@AlirezaAhmadi 我添加了 html 部分。
-
在
success属性之后添加,async: false。像这样:success: function (data) {if (data)return true;else {return false;}},async: false。告诉我发生了什么 -
@AlirezaAhmadi 什么都没发生
-
当您发明不存在的方法时,什么都不会发生。
onfocusout是一个验证触发器,它不是这个插件内置的规则/方法。你不能把它放在rules里面并期待任何事情发生。如果onfocusout是自定义方法,那么您没有向我们展示该部分,并且使用与事件相同的名称是一个糟糕的选择。