我有一个中继器(ASP.Net)。
<asp:Repeater ID="rep" runat="server">
<ItemTemplate>
<asp:TextBox runat="server" ID="txt"></asp:TextBox>
<asp:CheckBox runat="server" ID="cb" />
</ItemTemplate>
如果我使用jQuery单击复选框,我想在文本框中编写Text。这是可能的以及如何。
答案 0 :(得分:4)
我建议只使用CSS类并使用它来识别TextBox:
<asp:Repeater ID="rep" runat="server">
<ItemTemplate>
<asp:TextBox runat="server" ID="txt"></asp:TextBox>
<asp:CheckBox runat="server" ID="cb" CssClass="repCheck" />
</ItemTemplate>
然后:
$('.repCheck').change(function(){
// via Andre
$(this).siblings('input[type="text"]').first().val("clicked");
});
答案 1 :(得分:1)
您必须发布html输出才能获得正常工作的代码,但它是这样的:
$(function(){
$('#<%=rep.ClientID %> input[type="checkbox"]').each(function(){
$(this).change(function(){
$(this).siblings('input[type="text"]').first().val("clicked");
});
});
});
答案 2 :(得分:0)
是的,确实如此。一种可能性是服务器的方法:
在CheckBox的Load Event(在服务器中),您可以执行以下操作:
void checkBox_Load(object sender, EventArgs e)
{
CheckBox chk = (CheckBox) sender;
TextBox txt = (TextBox) chk.Parent.FindControl("txt");
chk.Attributes.Add("onclick",
string.Format("$(\"#{0}\").val('{1}');", txt.ClientID, "newValue");
}
编辑:它缺少jQuery选择器中的#。
答案 3 :(得分:0)
使用jQuery,您可以使用ID选择器选择您指定的ID =“txt”的DOM元素。 http://api.jquery.com/id-selector/
然后,您可以更新这些元素的.text()属性。 http://api.jquery.com/text/
这样的事情应该以最简单的方式运作:
$("#txt").text("some new text");