javascript - 在 ASP.NET 文本框中使用 javascript

标签 javascript asp.net textbox validation

我目前正在制作一个 ASP.Net 页面作为项目的一部分; 在制作主注册/登录页面验证器(改变其在 javascript 上的可见性并触发其相应文本框的 OnChange 事件的标签)时,我遇到了一个问题。尽管它在我们的计算机实验室中运行得很好(这意味着 javascript 代码本身可能是正确的),但验证器根本不起作用 - 无论输入如何。 知道为什么会发生这种情况吗?

谢谢!

Javascript:

function isUserValid() {
    var UserLength = document.getElementById("UserTB").value.length;
    var ValidatorLabel = document.getElementById("ValidateUser");
    if (UserLength < 6 || UserLength > 15) {
        ValidatorLabel.style.display = 'inline';
        return false;
        }
    else {
        ValidatorLabel.style.display = 'none';
        return true;
    }  
    }
function isPassValid() {
        var PassLength = document.getElementById("PasswordTB").value.length;
        var ValidatorLabel = document.getElementById("ValidatePassword");
        if (PassLength < 6 || PassLength > 15) {
            ValidatorLabel.style.display = 'inline';
            return false;
        }
        else {
            ValidatorLabel.style.display = 'none';
            return true;
        }
    }
function isConfirmValid() {
        var Password = document.getElementById("PasswordTB").value;
        var Me = document.getElementById("ConfirmTB").value;
        var ValidatorLabel = document.getElementById("ValidateConfirm");
        if (Password == Me) {
            ValidatorLabel.style.display = 'none';
            return true;
        }
        else {
            ValidatorLabel.style.display = 'inline';
            return false;
        }
    }
function isEmailValid() {
        var str = document.getElementById("EmailTB").value;
        var lastAtPos = str.lastIndexOf('@');
        var lastDotPos = str.lastIndexOf('.');
        var isFine = (lastAtPos < lastDotPos && lastAtPos > 0 && str.indexOf('@@') == -1 && lastDotPos > 2 && (str.length - lastDotPos) > 2);
        var ValidationLabel=document.getElementById("ValidateEmail");
        if(isFine)
        {
            ValidationLabel.style.display='none';
            return true;
        }
        else
        {
            ValidationLabel.style.display='inline';
            return false;
        }
    }

在 ASP 中:

<script src="Validators.js" type="text/javascript"></script>
....

ASP“验证器”:

Username:<br />
    <asp:TextBox ID="UserTB" runat="server" OnChange="return isUserValid();" AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="ValidateUser" runat="server" ForeColor="Red"
        Text="Username must be 6-15 characters in length, and contain no special characters." CssClass="Validators"></asp:Label>
    <br /><br />
    Password:<br />
    <asp:TextBox ID="PasswordTB" runat="server" OnChange="return isPassValid();" AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="ValidatePassword" runat="server" ForeColor="Red"
        Text="Password must be 6-15 characters in length, and contain no special characters." CssClass="Validators"></asp:Label>
    <br /><br />
    Confirm password:<br />
    <asp:TextBox ID="ConfirmTB" runat="server" OnChange="return isConfirmValid();" AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="ValidateConfirm" runat="server" ForeColor="Red"
        Text="This field must match the password field." CssClass="Validators"></asp:Label>
    <br /><br />
    Email:<br />
    <asp:TextBox ID="EmailTB" runat="server" OnChange="return isEmailValid();" AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="ValidateEmail" runat="server" ForeColor="Red" Text="Invalid Email." CssClass="Validators"></asp:Label>

最佳答案

<configuration>    
    <system.web>
        <pages clientIDMode="Static" />
    </system.web>
</configuration>

在 web.config 级别更改客户端 ID 模式,以便客户端和服务器端的 ID 相同。或者,通过标记中各自的属性将其设置在页面或控件级别。

关于javascript - 在 ASP.NET 文本框中使用 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968798/

相关文章:

java - 如何从 ASP .NET 网站检测安装在客户端上的 Java 运行时?

vb.net - 一次清除 vb.net 中的许多文本框控件

c# - 为什么 c# textbox.AppendText() 换行符在使用\n 作为行终止符时消失?

javascript - .fullcalendar 不是“提交按钮单击”上的功能

javascript - sublime 中 react 代码的语法高亮显示

javascript - React - callbackFromApp 函数仅在 onClick 上运行一次

javascript - 仅当在 Angular js 中手动重新加载页面时,signalr js 客户端方法才会调用

javascript - CKeditor 不显示在带有隐藏 div 的 asp.net 页面中

javascript - 如何清除每次使用文件 uploader 上传文件时的标签消息

html - CSS 文本框丢失顶行