0

我有一个输入,当用户输入某些内容时,我的脚本将信息发送到一个 php 脚本,该脚本返回是否可以使用输入的文本。

如果无法使用文本,它会禁用提交按钮并向结果文本添加一个类。

问题很奇怪,ajax 工作,返回结果,但是除非您再次聚焦并模糊输入,否则不会发生按钮禁用和添加类。

这是我的代码:

$('#alias').blur(function() {
if ($('#alias').val()) {
    var aliascheck = $('#alias').val();
    $(".aliascheck").load('checkalias.php?alias='+aliascheck);

    var result = $('.aliascheck').text();
    if (result.indexOf("Taken") != -1) {
        $('#shorten').attr("disabled","disabled");
        $('.aliascheck').addClass('error');
    } else {
        $('#shorten').removeAttr("disabled");
        $('.aliascheck').removeClass('error');
    }
}
});

代码位于此处: http: //markhenderson.ws/dev/tmtmu/ 要复制“taken”事件,请输入“taken”作为别名。其他任何东西都将返回可用。

有谁知道为什么会这样?

谢谢

4

1 回答 1

1

您需要将调用后的代码.load放入异步调用的回调函数中。

就像是:

$('#alias').blur(function() {
if ($('#alias').val()) {
    var aliascheck = $('#alias').val();
    $(".aliascheck").load('checkalias.php?alias='+aliascheck, function() {
        var result = $('.aliascheck').text();
        if (result.indexOf("Taken") != -1) {
            $('#shorten').attr("disabled","disabled");
            $('.aliascheck').addClass('error');
        } else {
            $('#shorten').removeAttr("disabled");
            $('.aliascheck').removeClass('error');
        }

    });


}
});
于 2012-09-01T20:18:51.243 回答