在我的asp页面中,我有三个文本和2个标签框。在文本框onblur
事件中我通过传递文本框clientid来调用javascript函数。但我无法从id获取文本框或标签框值过去了。
这是我的代码......
<script type="text/javascript">
function num_validate(cid,cid1) {
var patt = /^\d*(\.\d{1,2})?$/;
if (cid1 == "t1") {
var value=this.document.getElementById(cid).value; //failed
this.document.getElementById(cid).focus(); //failed
var ff = document.getElementById('<%= l1.ClientID %>').value);//failed
}
}
</script>
<asp:TextBox ID="t1" runat="server" onblur="javascript:num_validate(this,'t1')"> </asp:TextBox> <asp:Label ID="l1" runat="server" Text="3"></asp:Label>
<asp:TextBox ID="t2" runat="server" onblur="javascript:num_validate(this,'t2')"></asp:TextBox>
<asp:Label ID="l2" runat="server" Text="5"></asp:Label>
<asp:TextBox ID="t3" runat="server" onblur="javascript:num_validate(this,'t3')"></asp:TextBox>
我无法使用cid,cid1 ......
来设置文本框,标签框值请指导我解决这个问题?
答案 0 :(得分:2)
这是错误的
var value=this.document.getElementById(cid).value; //failed
this.document.getElementById(cid).focus(); //failed
改为使用
var value=cid.value;
cid.focus();
答案 1 :(得分:0)
以下代码是我尝试和工作的代码:
<script type="text/javascript">
function num_validate(element)
{
var Cid = element.getAttribute('id');
var value;
if(Cid = 't1')
{
value = element.value;
alert(value);
}
else if(Cid = 't3')
{
value = element.value;
alert(value);
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="t1" runat="server" onblur="num_validate(this, t1);">
</asp:TextBox>
<asp:TextBox ID="t3" runat="server" onblur="num_validate(this,t3);"></asp:TextBox>
</div>
</form>
</body>
</html>
如果它不起作用,您可以查看类似情况@ How do I pass a server control's actual client Id to a javascript function?。希望有所帮助。