我已按照发现Here的教程来了解标题所说的内容。到目前为止,我得出的结论是$.getJSON
根本不起作用。
我的代码已经枯萎了:
<script type="text/javascript">
$(document).ready(function () {
var usernameUnavailableRow = $('#usernameUnavailableRow');
var availabilityMessage = $('#availabilityMessage');
$("#UserName").hover(function () {
//usernameUnavailableRow.hide();
});
$("#UserName").blur(function () {
$.getJSON('/OCDB/UsernameAvailable.aspx?' + escape($(this).val()), function (results) {
if (results.available) {
alert("available"); //Just checking if anything even returns
} else {
alert("not available"); //Just checking if anything even returns
}
});
});
});
</script>
<table>
<tr>
<td>
<input id="UserName"></input>
</td>
</tr>
<tr id="usernameUnavailableRow">
<td>
<span id="availabilityMessage">k</span>
</td>
</tr>
</table>
我的UsernameAvailable.aspx
页面显示了这一点:
{ "available" : "false"}
使用时
<%@ Page Language="C#" CodeFile="UsernameAvailable.aspx.cs" Inherits="UsernameAvailable" ContentType="application/json" %>
getJson
事件中没有发生任何事情。
任何人都可以告诉我我哪里出错了,因为我无法看到我的错误。
修改
更改代码以删除Javascript生成的404错误(Thanks @Archer)后,结果现在始终返回True
。我已经检查过该页面在获取的用户名上返回False
,并且可以正常工作。
答案 0 :(得分:0)
results
中是item
还是alert(item);
(请再次检查您的代码)
此外,如果您获得有效的json
,则会显示在alert
中,
在警报中,它只会显示object
。
因此,要测试它,您需要编写console.log(results);
来代替alert(item);
您可以用<input id="UserName"/>
代替<input id="UserName"></input>
答案 1 :(得分:0)
您忽略了该链接上的这一行:
UsernameAvailable.aspx页面需要所需的用户名 在查询字符串中提供,如下所示: UsernameAvailable.aspx? desiredUsername
你需要这样做:
$.getJSON('UsernameAvailable.aspx?' + escape($(this).val()), function (results){
if (results.available) {
// available
}
else{
// unavailable
}
});