2016-05-19 15 views
1

Ich habe eine aspx-Anwendung mit einer Radiobutton-Liste wie unten:Get Wert von ausgewählter Radiobuttonlist in aspx

<asp:RadioButtonList runat="server" ID="rblIsDiesel" RepeatLayout="Flow" RepeatDirection="Horizontal"> 
    <asp:ListItem Text="Diesel" class="carFuel" Value="true" Selected="True" /> 
    <asp:ListItem Text="Petrol" class="carFuel" Value="false" /> 
</asp:RadioButtonList> 

In jQuery Ich bin in der Lage mit den Tasten des unten zu bekommen:

var buttons = $('span.carFuel input:radio'); 

jedoch , Ich vermisse, wie der Wert von RadioButton ausgewählt wird.

Was ich versuche, in Pseudo-Code zu tun wäre:

if (buttonSelected == Diesel) { 
    alert("Diesel") 
} 
else { 
    alert("Petrol") 
} 

Und zweitens, eine Warnung Feuer zwischen den Tasten auf Makel.

if (valueChanged) { 
    alert("You changed fuel type"); 
} 

Für die erste Frage, ich habe versucht, hinzuzufügen: an den Wähler geprüft und dann verwenden .val(), aber dass ich einen nicht definierten Wert gibt. Ich glaube, dass die Tastenauswahl, die ich oben habe funktioniert OK, als ob ich eine Debugger-Zeile hinzufügen, kann ich 2 Objekte und die richtigen Client-Seite IDs für die Optionsfelder sehen.

Und für den zweiten Teil, ich glaube, ich muss das jQuery change-Ereignis verwenden - nur nicht sicher auf der richtigen Selektor.

+0

Sind Sie sicher, dass diese jQuery funktioniert für Sie? Ich glaube, Radio-Button-Liste rendert in Tabelle, nicht in Spannen. Können Sie das resultierende Markup posten? – Andrei

+0

Ja, die Markierung wird mit einem Span erzeugt, und wenn ich die jQuery in der Konsole ausfühle, bekomme ich beide Radio Buttons –

Antwort

0

Der Schlüssel, den Sie zu vermissen scheinen, ist die ClientID.

Wenn ein Webserversteuerelement als HTML-Element gerendert wird, wird das ID-Attribut des HTML-Elements auf den Wert der ClientID-Eigenschaft festgelegt.

Mit dem, was man dann für die Eingabesteuerung aussehen tun, die überprüft wird:

var selectedRB = $('#<%= rblIsDiesel.ClientID %> input:checked'); 

dann den Wert zu erhalten, nur val() nennen.

var selectedValue = selectedRB.val(); 

Aber denken Sie daran, dies den Wert des Radiobutton wird, nicht der Text. So wie Sie es eingerichtet haben, würden Sie wahr oder falsch als Wert sehen. Und um ehrlich zu sein, ich bin mir nicht ganz sicher, ob ich verstehe, warum die Werte in Ihrer Implementierung wahr und falsch sind - aber das ist nebensächlich.

erfassen, wenn die ausgewählten Radiobutton ändert, gibt es eine handliche change Funktion, die Sie verwenden können:

$('#<%= rblIsDiesel.ClientID %> input').change(function() { 
    alert("You changed fuel type"); 
}); 
Verwandte Themen