Switch不返回值

Switch returns no value

本文关键字:返回值 Switch      更新时间:2023-09-26

我有一个表单,其中包括一个单选按钮,我试图把单选按钮变成一个"引导开关" (http://www.bootstrap-switch.org/)。我现在是这样做的:

<input type="radio" name="myRadio" value="true">
<script>
    $ ('[name="myRadio"]').bootstrapSwitch();
</script>

我的单选按钮被替换为一个引导开关,但它的值被设置为空,无论开关是打开还是关闭。如果我删除脚本并使用普通的单选按钮,那么一切都可以正常工作。

我想在servlet中像这样检索单选按钮值:
String value = request.getParameter("myRadio");

出了什么问题,我该如何解决?

将switchChange事件附加到启动开关上,然后获取它的状态,如

$("[name='my-checkbox']").bootstrapSwitch();
$('input[name="my-checkbox"]').on('switchChange.bootstrapSwitch', function(event, state) {
  console.log(this); // DOM element
  console.log(event); // jQuery event
  console.log(state); // true | false
});

这适用于那些具有Enable/Disable类型值的配对单选按钮

原始HTML:

<INPUT TYPE="RADIO" NAME="radio_active" VALUE="Yes" onClick="trunOff(0)" checked>Activated
<INPUT TYPE="RADIO" NAME="radio_active" VALUE="No" onClick="turnOff(1)">Deactivated

将以上内容替换为HTML:

<input type="hidden" name="radio_active" data-on="Yes" data-off="No" value="Yes" data-onchange="trunOff">
<input type="checkbox" class="bs-switch-radio" data-hidden="radio_active" data-size="small" data-label-width="auto" data-on-text="&nbsp;Activated&nbsp;" data-off-text="&nbsp;Deactivated&nbsp;" checked />
jQuery:

jQuery('.bs-switch-radio').bootstrapSwitch();
jQuery('.bs-switch-radio').on('switchChange.bootstrapSwitch', function(e,state){
    var hidden = jQuery(this).attr('data-hidden');
    var jhidden = jQuery("input[name='"+hidden+"']");
    var on = (jhidden.attr('data-on'))? jhidden.attr('data-on'): 1;
    var off = (jhidden.attr('data-off'))? jhidden.attr('data-off'): 0;
    var state_val = (state)? on : off;
    jhidden.val(state_val);
    var fnOnchange = jhidden.attr('data-onchange');
    var fn = window[fnOnchange];
    if(typeof fn === 'function') {
        fn(state);
    }
});