Vue.js Vee validate(VueJS)-异步评估条件
我可以根据AJAX请求创建一个返回true/false的自定义验证规则吗?问题在于,当AJAX调用完成时,验证调用已经完成运行 我是否需要让规则设置/取消设置一个布尔变量,根据该变量字段有效/无效Vue.js Vee validate(VueJS)-异步评估条件,vue.js,vuejs2,Vue.js,Vuejs2,我可以根据AJAX请求创建一个返回true/false的自定义验证规则吗?问题在于,当AJAX调用完成时,验证调用已经完成运行 我是否需要让规则设置/取消设置一个布尔变量,根据该变量字段有效/无效 const isValidNameRule = { getMessage(field) { return "The name must be unique." }, validate(validatingName) { var for
const isValidNameRule = {
getMessage(field)
{
return "The name must be unique."
},
validate(validatingName)
{
var formData = new FormData();
formData.append("validatingName", validatingName);
this.$http.post("/api/isValid?name=" + validatingName, formData)
.then(function (response) {
// success
return true;
}, function (response) {
// error
return false;
});
}
};
我不知道如何遵守诺言。 通过扩展其中一个官方样本,最终使其发挥作用:
const customRule = {
getMessage(field, params, data) {
return (data && data.message) || 'Something went wrong';
},
validate(aValue) {
return new Promise(resolve => {
var formData = new FormData();
formData.append("nameFilter", aValue);
$.ajax({
type: "POST",
url: url,
data: {
action: "validate",
value: aValue,
}
}).done(function (data) {
if (!ok)
{
resolve({
valid: false,
data: {message: "Condition not met"}
});
}
else
{
resolve({
valid: !! aValue,
data: undefined
});
}
});
});
}
};
我不知道如何遵守诺言。 通过扩展其中一个官方样本,最终使其发挥作用:
const customRule = {
getMessage(field, params, data) {
return (data && data.message) || 'Something went wrong';
},
validate(aValue) {
return new Promise(resolve => {
var formData = new FormData();
formData.append("nameFilter", aValue);
$.ajax({
type: "POST",
url: url,
data: {
action: "validate",
value: aValue,
}
}).done(function (data) {
if (!ok)
{
resolve({
valid: false,
data: {message: "Condition not met"}
});
}
else
{
resolve({
valid: !! aValue,
data: undefined
});
}
});
});
}
};