【发布时间】:2018-03-14 10:56:00
【问题描述】:
我已经在几个地方伸出援手,帮助很好,但没能成功。
希望你们能在这里帮助我。
我在 Flask 应用程序的模板页面中使用 JS。我正在使用欧芹验证来验证 Web 表单。我还创建了一个自定义验证器,它应该使用 axios 对后端进行 ajax 调用,以确定电子邮件地址是否已经注册。
我的 Flask 后端返回一个布尔字符串到我的 html 页面。所有这些看起来都是正确的。我正在恢复正确的价值。但是,当我在 axios 函数中退出“.then”函数时,Parsley 验证器无法工作/响应。
如果我删除 axios POST 调用。只需简单地说“return false”或“return true”,该功能就可以工作。验证消息返回到屏幕。
所以将 return 语句放在我的 .axios .then 函数中似乎存在问题?
有人可以看看我在这里做错了什么吗?我一生都无法弄清楚为什么它不起作用。
谢谢。
提姆。
我在这里包含了 FAILING JS 代码。
<script type="text/javascript">
window.Parsley.addValidator('existingEmail', {
validateString: function(value) {
// Performing a POST request
var promise = axios.post('/api/v1.0/existingEmailCheck', {email : value})
.then(function(response){
var result = (response.data.toLowerCase() === "true");
console.log(result)
return result
});
console.log(promise)
return promise
},
messages: {
en: "This email address has already been registered.",
}
});
</script>
我还包含了一个稍加修改(没有 axios 调用)的代码,它可以在这里工作。
<script type="text/javascript">
window.Parsley.addValidator('existingEmail', {
validateString: function(value) {
var string = "false" //This Simulates the Incoming Data.
var result = (string.toLowerCase() === "true");
console.log(result)
return result //Always returns false (due to hard coding)
//However this means that it triggers the error message and validation fails
//When you change the string to "true" it works as expected and validates
},
messages: {
en: "This email address has already been registered.",
}
});
</script>
该示例按预期工作。这让我相信第一个代码示例中的错误是在调用和返回 False 或 True 的 IF ELSE 之间的某个地方
人们能给我的任何帮助都会很棒!
【问题讨论】:
标签: javascript flask promise parsley.js