我有一个输入,当用户输入内容时,我的脚本将信息发送到php脚本,该脚本返回是否可以使用输入的文本。
如果无法使用该文本,则会禁用提交按钮并向reult文本添加一个类。
问题很奇怪,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/ 要复制“已拍摄”事件,请输入“已拍摄”作为别名。其他任何东西都会返回。
有谁知道为什么会这样?
由于
答案 0 :(得分: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');
}
});
}
});