我有一些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
}
我是否在messages
中的匿名函数中丢失了post
的范围?
答案 0 :(得分:1)
我的猜测是我在帖子中失去了匿名函数中的消息范围。我怎样才能通过这些?
你不是,但你仍然做错了。您的messages
变量是全局变量。在它前面加上var
以使其适应其功能。
您还需要在回调中致电setTip(input, messages)
,在此之前,messages
为undefined
。