Javascript jQuery RadioButtonList检查值返回“on”
我有一个奇怪的问题。我有一个单选按钮列表,当它被选中时,它会显示下面与所选项目对应的div。单选按钮列表上方是复选框列表。单选按钮单击事件可以正常工作,直到您选中上述复选框列表中的复选框。从上面的复选框列表中选中一个项目后,它将开始返回,而不是返回选定单选按钮的值。有什么想法吗 jQuery:Javascript jQuery RadioButtonList检查值返回“on”,javascript,jquery,asp.net,checkbox,radio-button,Javascript,Jquery,Asp.net,Checkbox,Radio Button,我有一个奇怪的问题。我有一个单选按钮列表,当它被选中时,它会显示下面与所选项目对应的div。单选按钮列表上方是复选框列表。单选按钮单击事件可以正常工作,直到您选中上述复选框列表中的复选框。从上面的复选框列表中选中一个项目后,它将开始返回,而不是返回选定单选按钮的值。有什么想法吗 jQuery: <script type="text/javascript"> function CheckAllTrucks(sendingcb) { $("#divTruckList :check
<script type="text/javascript">
function CheckAllTrucks(sendingcb) {
$("#divTruckList :checkbox").prop("checked", $(sendingcb).prop("checked"));
}
function SetTimeframeInput(sendingrbl) {
var value = $(sendingrbl + ":checked").val();
$("#divTimeFrameControls .timeframectrls").each(function () {
$(this).hide();
});
$("#div" + value).show();
}
HTML/ASP.NET代码:
<div class="form-field">
<asp:CheckBox ID="cbSelectAllTrucks" runat="server" Text="Select All Trucks" onclick="CheckAllTrucks(this)" />
<div id="divTruckList">
<asp:CheckBoxList ID="cblTrucks" runat="server" />
</div>
</div>
<div class="form-field">
<asp:RadioButtonList ID="rblTimeFrame" runat="server" onclick="SetTimeframeInput(this)">
<asp:ListItem Text="Month" Value="month" />
<asp:ListItem Text="Quarter" Value="quarter" />
<asp:ListItem Text="January-December" Value="jandec" />
<asp:ListItem Text="July-June" Value="juljun" />
</asp:RadioButtonList>
<div id="divTimeFrameControls">
<div id="divmonth" class="timeframectrls" style="display: none;">
<!-- month fields -->
</div>
<div id="divquarter" class="timeframectrls" style="display: none;">
<!-- quarter fields -->
</div>
<div id="divjandec" class="timeframectrls" style="display: none;">
<!-- jandec fields -->
</div>
<div id="divjuljun" class="timeframectrls" style="display: none;">
<!-- juljun fields -->
</div>
</div>
</div>
提前谢谢
编辑
我发现只有选中其中一个复选框时才会发生这种情况。如果选中然后取消选中,则该值仍然正确。只有选中复选框时,才会将值设置为on。尝试使用默认情况下单击时传递的EventObject,而不是将其传递给函数:
function SetTimeframeInput(e) {
var value = $(e.currentTarget).val();
// value contains selected radio button`s value
// continue your code here
}
我希望,这会有所帮助。仍然不知道问题出在哪里,但能够通过直接引用单选按钮列表的ID来解决问题。像这样:
function SetTimeframeInput() {
var value = $("#rblTimeFrame input:checked").val();
$("#divTimeFrameControls .timeframectrls").each(function () {
$(this).hide();
});
$("#div" + value).show();
}
感谢您的输入。当我做出您提到的更改时,e是未定义的。