0

我的文本框(asp.net)位于中继器详细信息部分的 DIV 和面板中(切换) 我如何访问 java 脚本函数中的文本框以使其在单击同一面板中的链接按钮时启用。

   <div id='d<%# DataBinder.Eval(Container, "ItemIndex") %>' class="details">

   <asp:Panel ID="Panel2" runat="server" Height="195px" BackColor="gray" Font-Bold="False"   ForeColor="Maroon">
  <br />
      <asp:Label ID="Label1" runat="server" Text="LicenseID"></asp:Label>&nbsp;&nbsp;&nbsp;&nbsp;

        <asp:TextBox ID="TextBox1" runat="server" Text='<%# DataBinder.Eval   (Container.DataItem,"LicenseID") %>' Enabled="False" BackColor="Gray"  BorderStyle="None"></asp:TextBox>

我尝试过这种方式,但显示错误

    <script type="text/javascript">
      function MyJSFunction() {
             var tet = document.getElementById("<%=TextBox1.ClientID %>");

                       }
 </script>

但显示以下错误消息。

BC30451:未声明“TextBox1”

由于其保护级别,它可能无法访问。

编辑这是我在 vb.net 中的代码。但是转换为 js 函数我发现了错误

       If e.CommandName = "edit" Then 
       DirectCast(e.Item.FindControl("TextBox2"),   TextBox).Enabled = True
       DirectCast(e.Item.FindControl("Textbox2"), TextBox).BorderStyle =BorderStyle.NotSet 
       DirectCast(e.Item.FindControl("Textbox2"), TextBox).BackColor = Drawing.Color.White       
      end if 
4

2 回答 2

0

这是因为在中继器中,您的 id 变为 yourRepeaterID_TextBox1_Sequence 使用 Javascript 来获取所有输入。像这样的东西:

  <script>
    function MyJSFunction() {
      var tb = document.getElementsByTagName('INPUT');
      for (var i = 0; i < tb.length; i++) {
        if (tb[i].type != "text") { continue; } // this is not TextBox
        // do whatever
      }
    }
  </script>
于 2013-11-05T07:05:07.583 回答
0

像这样使用带有选择器的jquery:

var textBox = $(".details input[type='text'][id*='TextBox1']");

问候,乌罗斯

于 2013-11-05T07:08:23.930 回答