gpt4 book ai didi

JavaScript 更新 ASP :Label Not Updating Text

转载 作者:行者123 更新时间:2023-12-03 11:31:45 25 4
gpt4 key购买 nike

我有一个用户注册页面,我想在没有回发的情况下检查输入的用户名是否已经存在于用户中。

ASPX 页面:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script src="Scripts/Registration.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>

<table class="contenttable">
<tr>
<td class="RegTableLabelCol">
<asp:Label ID="Label1" runat="server" Text="User Name"></asp:Label>
</td>
<td class="RegTableDataCol">
<asp:TextBox ID="txtUserName" runat="server" ></asp:TextBox>
</td>
<td class="RegTableMessageCol">
<asp:Label ID="lblUserName" runat="server" CssClass="ErrorLabel" Text="Test "></asp:Label>
</td>
</tr>
</table>
</form>
</body>
</html>

JavaScript:

function UserChecker(username) {

lbl = document.getElementById('<%=lblUserName.ClientID%>');

if (username != '') {
PageMethods.UserNameChecker(username, OnUserSucceeded);
}
else {
lbl.innerHTML = 'Please enter a username';
}
}

function OnUserSucceeded(result, userContext, methodName) {

lbl = document.getElementById('<%=lblUserName.ClientID%>');

if (methodName == "UserNameChecker") {

if (result == true) {
lbl.innerHTML = 'User name not available';
}

else {
lbl.innerHTML = 'User name is available ';
}


}

背后代码:

    protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtUserName.Attributes.Add("onblur", "UserChecker(this.value)");
}
}
[WebMethod]
public static bool UserNameChecker(string UserName)
{
string UserNameDb = null;
SQLMethods sqlm = new SQLMethods();

DataSet dataSet1 = sqlm.IsUserNameExist(UserName);

foreach (DataRow row in dataSet1.Tables["UserName"].Rows)
{
UserNameDb = string.Format("{0}", row["UserName"]);
}

if (UserNameDb != null)
{
return true;
}
else
{
return false;
}

}

我已经在 J​​avaScript 中添加了警报,并且这些函数似乎被触发了。问题是这两种情况都没有设置标签(没有用户名、用户名被占用或用户名正常)。我哪里出错了?

更新

JavaScript 位于 .js 文件中,如果我将其放入 aspx 页面中,它将拾取标签并运行。

最佳答案

lbl = document.getElementById('<%=lblUserName.ClientID%>');

在 JS 文件中不起作用。 <%= %> 表示aspx页面的服务器代码部分。如果你把它放在 JS 文件中,它只是一个字符串。

您可以将这部分保留在页面中,并将 lbl 声明为全局变量,该变量在 JS 文件引用中起作用。

或者您可以将控件的ClientIDMode切换为静态,然后在JS文件中使用控件的ID

关于JavaScript 更新 ASP :Label Not Updating Text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26702204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com