关于文本框验证
本文关键字:验证 文本 于文本 | 更新日期: 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 ";
}
}