+ -
当前位置:首页 → 问答吧 → 帮忙看看这段jquery哪错了

帮忙看看这段jquery哪错了

时间:2009-08-29

来源:互联网

<html xmlns="http://www.w3.org/1999/xhtml"><head><title>    无标题页</title>
<script src="../javascript/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
var textUsernameId = '#ctl00_ContentPlaceHolder1_TextBox_Nickname';
var ValidUsernameId = '#ctl00_ContentPlaceHolder1_Validate_Username';

var isNameAvai;

function validUsername() {
        var username = $(textUsernameId).val();
        
        var avai = isUsernameAvailable(username);
        if (avai) {
            $(ValidUsernameId).text("");
            return true;
        } else {
            $(ValidUsernameId).text("用户名已被注册");
            return false;
        }
    }

function isUsernameAvailable(name) {
        name = "{'name':'" + name + "'}";
        
        $.ajax({
            type: "POST",
            url: "../WebService/WS_Security.asmx/isUsernameAvailable",
            data: name,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                setUsernameAvailable(msg.d)
            }
        });
        return isNameAvai;
    }

    function setUsernameAvailable(msg) {
        isNameAvai = false;
    }

$(document).ready(function() {
        $(textUsernameId).blur(validUsername);
    });

</script></head>
<body><form>
<input name="ctl00$ContentPlaceHolder1$TextBox_Nickname" type="text" maxlength="10" id="ctl00_ContentPlaceHolder1_TextBox_Nickname" />
            <span id="ctl00_ContentPlaceHolder1_Validate_Username"></span>
</form></body></html>

以上代码是这样的, 我需要检查用户输入的用户名是否已被注册,如果没有被注册,则不显示任何信息,如果已被注册,则显示“用户已注册”

jquery的ajax功能完好,可以正常取得webservice的内容,返回的数据是:{"d":true}
但我发现success: function(msg) {  setUsernameAvailable(msg.d)  } 这个方法并没有被调用,而是直接跳过,导致isNameAvai是undefined的值。

请问我哪里出错了?

谢谢!

作者: wappibz   发布时间: 2009-08-29

找到一点:
success: function(msg) {
                setUsernameAvailable(msg.d)
            }
这里我没有写分号,应该是
success: function(msg) {
                setUsernameAvailable(msg.d) ;
            }

但发现仍然是不执行success里面的函数。。。。 要怎么它才会执行啊。。。
firebug都显示了,对于ajax的post,返回的是200 OK,而且数据都是正常的,但就tnnd不执行success函数  疯了

作者: wappibz   发布时间: 2009-08-29