1

我的学校正在运行一个项目来构建一个包含注册和登录的网站。当然,我国的导师水平不高,要求我们用Javascript来检查表单中的输入,而不是用ASP.NET来做。

那么,让我们来看看这个问题:

我的输入很少,如下所示:

<asp:TextBox id="usname" runat="server" MaxLength="20" value="שם משתמש" TextMode="SingleLine" CssClass="usernameInput" onfocus="this.value=''"></asp:TextBox>
            <asp:TextBox ID="email" runat="server" MaxLength="40" value="אימייל" TextMode="SingleLine" CssClass="emailInput" onfocus="this.value=''"></asp:TextBox>
            <asp:TextBox ID="password" runat="server" MaxLength="20" value="סיסמה" TextMode="Password" CssClass="passwordInput" onfocus="this.value=''"></asp:TextBox>
            <asp:TextBox ID="passwordRepeat" runat="server" MaxLength="20" value="אימות סיסמה" TextMode="Password" CssClass="passwordRepeatPassword" onfocus="this.value=''"></asp:TextBox>

在尝试使用它的 id 识别字段时,Javascript 将无法识别它。我该怎么做才能保留这个文本框,并使用 Javascript 检查输入?

在此先感谢,伊利亚

4

2 回答 2

4

ASP.Net 为服务器端控件生成自己的唯一 ID。

ClientIDMode您可以通过将属性设置为来防止这种情况Static

于 2013-05-10T16:38:13.783 回答
1

您可以尝试使用以下选项:

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

例子:

function CheckInput()
{
    var userName = document.getElementById('<%=usname.ClientID %>');
    var mail = document.getElementById('<%=email.ClientID %>');
    var pwd = document.getElementById('<%=password.ClientID %>');
    var pwdRepeat = document.getElementById('<%=passwordRepeat.ClientID %>');

    // Your validation logic

    if (userName == "XYZ" && mail == "abc@xyz.com" && pwd == "1234" &&
        pwdRepeat == "1234")
    {
        return true;
    }

    else
    {
        return false;
    }
}

您可以通过单击按钮调用它,如下所示:

<asp:Button ID="Button1" runat="server" Text="Button" 
 OnClientClick="javascript:return CheckInput();" />

上面的 javascript 将返回 true 或 false。如果它返回 True 那么按钮将回发到服务器。

于 2013-05-10T17:03:08.270 回答