2010-03-18 5 views
2

je l'RadioButtonList ASP.NET suivante:jquery sélectionner un élément dans radiobuttonlist via la fonction côté client

<asp:RadioButtonList ID="rbl" runat="server"> 
    <asp:ListItem Text="Type1" Value="1" /> 
    <asp:ListItem Text="Type2" Value="2" /> 
</asp:RadioButtonList> 

je voudrais sélectionner un élément dans la liste par programme par une fonction jquery du côté client comme celui-ci (version simplifiée):

function BindWidget(widget) { 
    // Type property of Widget is an int. 
    $("#<%=rbl.ClientID%>").selectItemByValue(widget.Type); 
} 

Idéalement, il y a une fonction - dans le code ci-dessus je propose selectItemByValue - qui sélectionne un élément dans une RadioButtonList d'une valeur donnée. Est-ce que jquery a une fonction similaire? Si non, comment dois-je procéder à la mise en œuvre de la fonctionnalité souhaitée?

Répondre

4

Sélectionnez à l'aide:

$("#<%=rbl.ClientID%> input[value=" + widget.Type + "]") 
+0

cela fonctionnerait, bien que j'ai opté pour faire un filtre de sorte que je n'avais pas à m'inquiéter de caractères "amusants" potentiels dans la valeur de chaîne "type". – Pointy

+0

J'ai modifié votre suggestion pour sélectionner le RadioButton approprié émis par RadioButtonList; il n'y a pas d '"option" dans la sortie comme avec DropDownList. Mes identifiants sont plus verbeux que "rbl", donc ce n'est pas un problème. J'aime l'idée de Pointy d'utiliser un filtre, mais cette approche semble plus simple et fonctionne correctement avec RadioButtonList. $ ("input [id * = 'rbl'] [value = '" + widget.Type +'] "). Attr (" vérifié "," vérifié "); – mcliedtk

+0

a résolu mon problème ... fonctionne avec la classe selector aussi: $ (". className input [value = 'someValue']") – dars

1
function bindWidget(widget) { 
    $('#<%-rbl.ClientId%> input:radio') 
    .filter(function(btn) { return btn.value == widget.Type; }) 
    .attr('checked', true); 
} 
+1

RadioButtonLists liaison à l'aide plutôt que

+0

Oh Durr -. Désolé ! Merci @ddango! – Pointy

5

essayer.

$('#<%=rbl.ClientID %>').find("input[value=" + widget.Type + "]").attr("checked", "checked"); 
Questions connexes