jquery - 如何将响应值从 .post() 返回到我的函数中?

标签 jquery ajax scope

我有一些 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/

相关文章:

Javascript:for 循环 'for(i=0; i < 3 ; i++)' 在没有使用 continue、break 或 return 的情况下过早终止

jQuery - if (this.checked) 具有多个输入组

jquery - 强制基础遵守验证

javascript - 覆盖图像右键单击的上下文菜单

javascript - 在数据表上填充数据不起作用

javascript - 与 JavaScript 作用域链交互

php - 成员函数静态变量的作用域

javascript - 密码验证不起作用

javascript - 级联下拉列表(SubLocality)在 asp.net mvc 中不起作用

asp.net - 使用 jQuery、Ajax 和 JSON 提交单引号