我有<%: 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>")
}
});
}
答案 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("");
}
});
}
}