Switch不返回任何值

时间:2014-05-05 06:25:24

标签: java javascript html twitter-bootstrap

我有一个包含单选按钮的表单,我试图将单选按钮变成一个" bootstrap开关" (http://www.bootstrap-switch.org/)。这就是我目前正在做的事情:

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

我的单选按钮被一个bootstraps开关替换,但无论开关是打开还是关闭,它的值都设置为null。如果我删除脚本并使用普通的单选按钮,一切都按照它应该的那样工作。

我想在servlet中检索单选按钮值,如下所示:

String value = request.getParameter("myRadio");

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

2 个答案:

答案 0 :(得分:0)

将开关更改事件连接到引导开关,然后将其状态设置为

$("[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
});

答案 1 :(得分:0)

这适用于那些配置了具有启用/禁用值类型的单选按钮的人

原始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);
    }
});