关于文本框验证

本文关键字:验证 文本 于文本 | 更新日期: 2023-09-27 17:58:43

我编写了一个简单的javascript函数,用于验证aspx页面中的文本框

     <body>
     <script type="text/javascript" > 
      function checkTextbox(sender, target) {
      if (document.getElementById(sender).value  < document.getElementById(target).value) {
            var lbl = document.getElementById('<%=lbl_Outlet_Message.ClientID %>');
            lbl.style.display = 'block';
            lbl.value = "Enter Slab To Value should be greater or equals to From Value ";
        }
    }
</script>
<form id="form1" runat="server">
 <asp:Label ID="lbl_Outlet_Message" runat="server" ForeColor="Red" Visible="False"></asp:Label>
 <asp:TextBox ID="txt_from_02" runat="server" ></asp:TextBox> 
<asp:TextBox ID="txt_to_02" runat="server" onKeyUp="checkTextbox(this,'txt_from_02')">
</asp:TextBox>
</form>
</body>

当我运行aspx页面时,它会出现以下错误"0x800a01a8-Microsoft JScript运行时错误:需要对象"我不知道哪里出了问题。

关于文本框验证

函数checkTextbox期望发送方为id,但如果使用this传递当前对象,则应使用this.id而不是this,或者通过直接评估当前对象的值属性来更改if条件,而不是将当前对象传递给document.getElementById

更改

if (document.getElementById(sender).value

if (sender.value

document.getElementById找不到只有ID名称的ASP.NET控件,因此document.getElementById(target)返回null并引发异常。

您应该使用clientID属性。

尝试更改:

<asp:TextBox ID="txt_to_02" runat="server" onKeyUp="checkTextbox(this,'txt_from_02')">

收件人:

<asp:TextBox ID="txt_to_02" runat="server" onKeyUp="checkTextbox(this,'<%=txt_from_02.ClientId %>')">

您正在使用document.getElementById函数,但没有传递文本框的Id。所以你得到了错误。您通过写"this"来传递文本框的整个对象。所以document.getElementById(sender)实际上并没有得到id。尝试以下解决方案,您的代码将完美工作:

<body>
 <script type="text/javascript" > 
  function checkTextbox(sender, target) {
  if (document.getElementById(sender.id).value  < document.getElementById(target).value) {
        var lbl = document.getElementById('<%=lbl_Outlet_Message.ClientID %>');
        lbl.style.display = 'block';
        lbl.value = "Enter Slab To Value should be greater or equals to From Value ";
    }
}