我使用ASP.Net Radiobutton列表进行布局,并在不同的div中使用多个集合。每个集合都有一个高于它的标题div,当我考虑放射性按钮选择时,我试图更新它。
我知道这不是为了没有选择正确的div,而是在没有明确命名所有div的情况下不确定如何做到这一点。
.Net Radiobuttonlist在无序列表中呈现为单选按钮,如果这会产生影响。
var rbl1 = $("#<%=rbl1.ClientID %> input");
var rbl2 = $("#<%=rbl2.ClientID %> input");
rbl1.add(rbl2).bind("change", function () {
var idVal = $(this).attr("id");
var lbltext = $("label[for='" + idVal + "']").text();
$(this).parents().find('.header:first').text(lbltext);
var UpdatePanel1 = '<%=imgPanel.ClientID%>';
__doPostBack(UpdatePanel1, '');
});
<div class="holder">
<div class="header">TITLE HERE</div>
<asp:RadioButtonList ID="rbl1" runat="server" RepeatLayout="UnorderedList"
RepeatDirection="Vertical" CssClass="selector" />
</div>
<div class="holder">
<div class="header">TITLE HERE</div>
<asp:RadioButtonList ID="rbl2" runat="server" RepeatLayout="UnorderedList"
RepeatDirection="Vertical" CssClass="selector" />
</div>
当其中一个radiobutton集合被更改时,我希望相应的标题类div将文本更改为所选的单选按钮。在我拥有它的那一刻,它改变了第一个,无论我点击哪一组单选按钮 - 因此在第二组中更改一个会更改两个标题类div。
答案 0 :(得分:0)
您可以找到带有siblings-method的兄弟标题div(或最近的(&#34; .holder&#34;)。find(&#34; .header&#34;)):
$(".holder :radio").on("change", function () {
var idVal = $(this).attr("id");
var lbltext = $("label[for='" + idVal + "']").text();
$(this).siblings(".header").text(lbltext);
var UpdatePanel1 = '<%=imgPanel.ClientID%>';
__doPostBack(UpdatePanel1, '');
});
此外,你应该在jQuery中使用on-method而不是bind。你可以像上面那样让选择器变得更容易。
编辑:不确定Asp.Net如何呈现radiobuttonlist,可能将其包装在div或其他内容中。然后header-div不是radiobutton的兄弟。如果是这种情况,请使用我提到的最接近的替代方案。