通过JS函数在Repeater中启用文本框

时间:2013-11-05 04:02:31

标签: javascript asp.net vb.net

我的文本框(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'

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

EDIT  这是我在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 

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

使用jquery和这样的选择器:

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

此致 乌罗什