我有一个带有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更改事件 - 只是不确定正确的选择器。
答案 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");
});