我的文本框(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>
<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
答案 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']");
此致 乌罗什