【发布时间】:2014-01-18 17:39:15
【问题描述】:
我正在使用 node/express 开发一个网络应用程序。我有一个名为validation.js 的电子邮件验证javascript 文件。我想要做的是,一旦用户输入错误的电子邮件,电子邮件输入区域下就会出现错误消息。但它确实,似乎没有这样做。
validation.js:
var INVALID_EMAIL = "The email you entered is invalid";
var EMPTY_EMAIL = "You did not enter an email";
exports.validateEmail = function (email, callback) {
console.log("In validate email");
console.log(email);
var email = 0;
var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (email.length == 0) {
err = EMPTY_EMAIL;
callback(err);
}
else if (!email.test(emailFilter)){
err = INVALID_EMAIL;
callback(err);
}
}
在 app.js 中我添加了路由:
app.post("/validation/email", function(req, res) { validation.validateEmail(req) });
这里的 /valiation/email 不是真实视图。
我的登录信息如下所示:
login.jade:
form(action="")
key EMAIL
input(type="text", name="username", id="email")
br
span(class="email-error-message")
br
key PASSWORD
input(type="text", name="password", id="password")
br
span(class="pw-error-message")
br
input(type="submit", name="loginButton", id="login-button", value="LOGIN")
我还没有实现密码的东西,所以忽略它。但是我在那里有跨度,以便在用户输入错误消息的情况下输出错误消息。
最后,我在 navigation.js 中有 ajax 调用:
$('#email').blur(function() {
console.log('inside click function in navigation.js');
$.post('/validation/email', $("#email").val() , function(data) {
console.log('hello got here too');
$(".email-error-message").html(data);
});
});
当我运行这个应用程序时,我收到控制台消息,我在 navigation.js 中的点击中,但是当我离开电子邮件输入区域时没有收到错误消息,警告我使用了无效的电子邮件。我已经尝试到处寻找答案,但我没有成功。我知道这样做是可能的,但坚持如何让它这样做。
任何帮助都是有用的。
【问题讨论】:
标签: javascript ajax node.js express