1

在我的 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>&nbsp;<asp:Label ID="l1" runat="server" Text="3"></asp:Label>

<asp:TextBox ID="t2" runat="server"  onblur="javascript:num_validate(this,'t2')"></asp:TextBox>&nbsp;
        <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 来获得文本框、标签框值...

请指导我摆脱这个问题?

4

2 回答 2

2

这是错误的

var value=this.document.getElementById(cid).value; //failed
this.document.getElementById(cid).focus(); //failed

改为使用

var value=cid.value;
cid.focus();
于 2013-02-22T09:41:13.393 回答
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>&nbsp;

  <asp:TextBox ID="t3" runat="server"  onblur="num_validate(this,t3);"></asp:TextBox>

    </div>
    </form>
</body>
</html>

如果它不起作用,您可以看看类似的情况@如何将服务器控件的实际客户端 ID 传递给 javascript 函数?. 希望有帮助。

于 2013-02-22T10:33:32.860 回答