2012-02-22 21 views
8

có 2 RadioButtonLists:ASP.Net RadioButtonList: sử dụng jQuery để có được những ListItem chọn

Are you a minor?: oYes oNo 
Do you wish a joint account?: oYes oNo 

Nếu câu trả lời cho câu hỏi 1 là có, tôi muốn để phát hiện các phản ứng cho câu hỏi đầu tiên và thiết lập các câu trả lời cho câu hỏi thứ 2 là có sử dụng hàm jQuery. Cảm ơn trước.

<asp:Label ID="lblMinfor" CssClass="boldIt" runat="server" Text="Is this account for a minor" Style="float: left; width: 200px;"></asp:Label><br /> 
<asp:RadioButtonList ID="rdlMinor" runat="server" RepeatDirection="Horizontal" Width="130px" Style="float: left;" BorderStyle="None" RepeatLayout="Flow"()> 
    <asp:ListItem>Yes</asp:ListItem> 
    <asp:ListItem Selected="True">No</asp:ListItem> 
</asp:RadioButtonList> 
<asp:Label ID="lblJoint" CssClass="boldIt" runat="server" Text="Is this for a joint account?" Style="float: left; width: 200px;"></asp:Label><br /> 
<asp:RadioButtonList ID="rdlJoint" runat="server" RepeatDirection="Horizontal" Width="130px" Style="float: left;" BorderStyle="None" RepeatLayout="Flow"> 
    <asp:ListItem>Yes</asp:ListItem> 
    <asp:ListItem Selected="True">No</asp:ListItem> 
</asp:RadioButtonList> 
+2

Bạn có thể gửi mã HTML cho các nút? – JaredPar

+0

Tôi đã đăng mã. – Susan

Trả lời

11
$('#<%=rdlMinor.ClientID %>').change(function() { 
    if($('#<%=rdlMinor.ClientID %> input:checked').val() == 'Yes') 
    { 
     $('#<%=rdlJoint.ClientID %>').find("input[value='Yes']").attr("checked", "checked"); 
    } 
}); 
+0

Khi ASP.Net được hiển thị dưới dạng HTML, ID được thay đổi và không còn 'rdlMinor;' ID đó không có sẵn khi kịch bản lệnh jQuery được nạp vào bộ nhớ để nó không thể truy cập được trong jQuery – Susan

+0

Bạn có thể sử dụng ClientIDMode = "Static" trên bộ điều khiển để giữ ID được xác định trong đánh dấu của bạn. – Andreas

4

Hãy thử mã này:

<script type="text/javascript"> 

$(document).ready(function() { 

    $("#<%=rdlMinor.ClientID%>").change(function() 
    { 
     var rbvalue = $("input[@name=<%=rdlMinor.ClientID%>]:radio:checked").val(); 

     if(rbvalue == "Yes") 
     { 
      $('#<%=rdlJoint.ClientID %>').find("input[value='Yes']").attr("checked", "checked"); 
     } 
    }); 

}); 

</script> 

Thông tin thêm về các chủ đề này:

JQuery Accessing the Client Generated ID of ASP.NET Controls

How to Set Get RadioButtonList Selected Value using jQuery

+0

Khi ASP.Net được hiển thị dưới dạng HTML, ID được thay đổi và không còn 'rdlMinor;' nó được tạo ra khi đang bay. ID đó không có sẵn khi kịch bản lệnh jQuery được nạp vào bộ nhớ để nó không thể truy cập được trong jQuery. – Susan

+0

Đó là lý do tại sao chúng tôi sử dụng '$ (" # <% = rdlMinor.ClientID%> ")' và không chỉ '$ (# rdlMinor") '. Cấu trúc đầu tiên này sẽ đặt trong mã jQuery ID chính xác mà ASP. Đó là lý do tại sao chúng ta cần phải sử dụng '$ (" # <% = rdlMinor.ClientID%> ")'. Bằng cách này, bạn nên đặt mã jQuery của bạn sau khi trang đã tải xong trong sự kiện sẵn sàng jQuery Tôi sẽ cập nhật mã –

+0

Tôi vừa sửa chữa lỗi đánh máy trong mã trước của mình, nơi tôi đã có '<% = dlMinor.ClientID%>' thay vì '<% = rdlMinor.ClientID%>'. nếu mã sửa chữa ở trên hoạt động ngay bây giờ và lấy lại ... –