我如何使用JQuery getJSON来验证用户名

时间:2013-02-06 12:37:46

标签: c# jquery asp.net json

我已按照发现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,并且可以正常工作。

2 个答案:

答案 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
    }
});