获取aspx中选定的RadioButtonList的值

时间:2016-05-19 09:28:55

标签: javascript jquery asp.net

我有一个带有RadioButton列表的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>

在jQuery中,我可以使用以下内容获取按钮:

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

但是,我错过了如何获取选择哪个RadioButton的值。

我在伪代码中尝试做的是:

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

其次,在按钮之间切换时发出警报。

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

对于第一个问题,我试图添加:检查选择器然后使用.val(),但这给了我一个未定义的值。我相信我上面的按钮选择器工作正常,好像我添加了一个调试器行,我可以看到2个对象和单选按钮的正确客户端ID。

对于第二部分,我相信我将需要使用jQuery更改事件 - 只是不确定正确的选择器。

1 个答案:

答案 0 :(得分:0)

您似乎缺少的关键是ClientID

  

当Web服务器控件呈现为HTML元素时,HTML元素的id属性将设置为ClientID属性的值。

这样,你接下来要查找被检查的输入控件:

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

然后要获取该值,只需致电val()

var selectedValue = selectedRB.val();

但请记住,这会得到radiobutton的,而不是文本。因此,根据您的设置方式,您会看到值为true或false。说实话,我并不完全确定我理解为什么这些值在你的实现中是真的和错误的 - 但这不是重点。

要捕获所选单选按钮更改的时间,您可以使用一个方便的change功能:

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