我试图让中继器内的文本区域在单击按钮时显示(该按钮也与文本区域一起位于同一个中继器内)
function ShowTextArea()
{
var rpt = document.getElementById("<%= Repeater1.ClientID%>");
var inputs = rpt.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++)
{
if (inputs[i].click())
{
$("#txtcmt2").show();
}
}
}
这是中继器:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="comment" OnItemDataBound="Repeater1_ItemDataBound" OnItemCreated="Repeater1_ItemCreated">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" ImageUrl="Icons/profile-user.png" CssClass="btn btn-default" runat="server" /><label><%#Eval("FullName") %></label>
<div runat="server" class="form-control">
<%#Eval("Commentaire") %>
</div>
<asp:HiddenField ID="HiddenField1" runat="server" Value=' <%# Eval("CodeCommentaire") %> ' />
<asp:ImageButton ID="spambtn" CssClass="btn btn-default" ImageUrl="Icons/warning.png" runat="server" />
<input id="rplybtn" Class="btn btn-info" type="button" onclick="ShowTextArea();" value="Reply" />
<textarea id="txtcmt2" cols="50" rows="4" class="form-control" style="visibility:hidden" runat="server"></textarea>
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<asp:ImageButton ID="Imagsous" ImageUrl="Icons/profile-user.png" CssClass="btn btn-default" runat="server" /><label><%#Eval("FullName") %></label>
<div id="souscmt" ><%#Eval("Commentaire_sous") %></div>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
最佳答案
如果你打算有多个这样的 block ,我会将 javascript 更改为:
function ShowTextArea(clientId)
{
var rpt = document.getElementById(clientId);
var inputs = rpt.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++)
{
if (inputs[i].click())
{
$("#txtcmt2").show();
}
}
}
然后在 <asp:ImageButton />
标签,添加 onClick="ShowTextArea('<%= Repeater1.ClientId %>');"
。您可能想要更改 Rpeater1
使用您在循环中使用的任何变量,即 currentRepeater
如果你正在做类似的事情:
foreach(var currentRepeater in RepeaterCollection)
{
// repeater block write code...
}
或者您可以引用textarea
直接来自onClick
事件:
<asp:ImageButton ID="Imagsous" ImageUrl="..." onClick="$('txtcmt2').show();" />
关于javascript - 如何使用 JavaScript 使 Repeater 内的 TextArea 在单击按钮时显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37094427/