jQuery - 在单选按钮更改时更新div中的文本

时间:2014-10-22 10:27:08

标签: jquery asp.net radiobuttonlist

我使用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。

1 个答案:

答案 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的兄弟。如果是这种情况,请使用我提到的最接近的替代方案。