使用Jquery永久清除Html文本框值

时间:2011-06-08 13:58:17

标签: jquery asp.net-mvc

我有<%: Html.TextBoxFor(model=>model.UserName)%>。在这里,我正在检查用户名是否可用。如果它不可用,那么我需要清除TextBox。我使用了查询$("#UserName").val("");。但事件再次完成后,文本框获取值。任何人都可以帮助我吗?

更新:评论中的其他Javascript代码:

function CheckAvailability() {
    $.post("/WebTeamReleaseDB/CheckAvailability", {
        Username: $("#UserName").val()
    }, function(data) {
        var myObject = eval('(' + data + ')');
        var newid = myObject;
        if (newid == 1) {
            $("#usernamelookupresult").html("<font color='green'>Available :-D</font>")
        } else {
            $("#UserName").val("");
            $("#usernamelookupresult").html("<font color='red'>Taken :-(</font>")
        }
    });
}

2 个答案:

答案 0 :(得分:1)

当您使用<%: Html.TextBoxFor(model=>model.UserName)%>时,它可能会以<input name="UserName">呈现给该页面,因此$("#UserName").val("");找不到它,因为没有id =“UserName”。

一种可能的解决方案:使用<%: Html.TextBoxFor(model=>model.UserName, new { id = "UserName" })%>,它应该以{{1​​}}的形式呈现给页面。之后,<input name="UserName" id="UserName">应该有效,因为文本框现在具有该id属性。

答案 1 :(得分:0)

我得到了问题的答案。

HTML code:

<%: Html.TextBoxFor(model=>model.UserName,new { @onchange="CheckAvailability()" }) %>

Javascript代码:

function CheckAvailability() {
        var value;
        if (document.getElementById("UserName").value == "") {
            $("#usernamelookupresult").html("");
            alert("Please Enter User Name");
        }
        else {
            $.post("/WebTeamReleaseDB/CheckAvailability",
            {
                Username: $("#UserName").val()
            },
                function (data) {
                    var myObject = eval('(' + data + ')');
                    var newid = myObject;
                    value = myObject;
                    if (newid == 1) {
                        $("#usernamelookupresult").html("<font color='green'>Available :-D</font>")
                    }
                    else if (newid == 2) {
                        $("#usernamelookupresult").html("<font color='red'>UserName Invalid! :-(</font>")
                    }
                    else {
                        $("#usernamelookupresult").html("<font color='red'>Taken :-(</font>")
                        $("#UserName").val("");
                    }
                });
            }
        }