我有一些 JavaScript 验证,可以检查(除其他外)电子邮件是否被占用,但我无法让它工作。
function validateField(input) {
errors = false;
messages = ''; //
/* Begin checks */
if (input.hasClass('jEmailUnique')) {
message = 'Email not taken';
$.post('../ajax/j_validate.php', {
step: 1,
email: input.val()
}, function(response){
if (response != '0') {
message = tipInvalid + message;
errors = true;
}
else {
message = tipValid + message;
}
messages += "<p>" + message + "</p>";
});
}
/* End checks */
if (errors == true) {
input.addClass('jHasError').removeClass('jNoError');
}
else {
input.addClass('jNoError').removeClass('jHasError');
}
setTip(input, messages); // show pop up window with error messages
}
我是否会丢失 post
中匿名函数中的消息
范围或其他内容?
最佳答案
My guess is I'm losing the scope of messages in the anonymous function in the post. How can I pass these through?
你不是,但你仍然做错了。您的 messages
变量是全局的。在其前面添加一个 var
以将其范围限定为其函数。
您还需要在回调中调用 setTip(input, messages)
,在此之前,messages
是未定义
。
关于jquery - 如何将响应值从 .post() 返回到我的函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8334312/