这段代码有什么问题。它适用于以前版本的Jquery,但在版本1.11.0中停止工作。此脚本检查用户名可用性并在div #status中打印结果。
该脚本仅部分工作。它向check-username.php发送请求并显示loading.gif和text"请等待"但永远不会打印check-username.php文件的结果。它停留在"请等待"永远。
Javascript控制台不显示任何错误消息。
<script type="text/javascript">
pic1 = new Image(16, 11);
pic1.src = "/loading.gif";
$(document).ready(function () {
$("#nn").change(function () {
var usr = $("#nn").val();
var paro = $("#par").val();
$("#status").html('<img src="/loading.gif" align="absmiddle">Please wait');
$.ajax({
cache: false,
type: "POST",
url: "/check-username.php",
data: "nn=" + usr + "&prr=" + paro,
success: function (msg) {
$("#status").ajaxComplete(function (event, request, settings) {
$("#nn").removeClass('object_ok');
$("#nn").addClass("object_error");
$(this).html(msg);
});
}
});
});
});
</script>
答案 0 :(得分:0)
必须是注册成功回调函数时触发ajaxComplete。
这就是你想要的,对吧? (对不起,我实际上没有运行它)
<script type="text/javascript">
pic1 = new Image(16, 11);
pic1.src = "/loading.gif";
$(document).ready(function () {
$("#nn").change(function () {
var usr = $("#nn").val();
var paro = $("#par").val();
$("#status").html('<img src="/loading.gif" align="absmiddle">Please wait');
$.ajax({
cache: false,
type: "POST",
url: "/check-username.php",
data: "nn=" + usr + "&prr=" + paro,
error: function (err) {
$("#nn").removeClass('object_ok');
$("#nn").addClass("object_error");
$("#status").html('an error occurred');
},
success: function (msg) {
$("#nn").addClass('object_ok');
$("#nn").removeClass("object_error");
$("#status").html(msg);
}
});
});
});
</script>
作为附注,根据http://www.w3schools.com/tags/tag_img.asp img标记:
在HTML中,标签没有结束标记。
在XHTML中,必须正确关闭标记。