我有一个包含单选按钮的表单,我试图将单选按钮变成一个" 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");
有什么问题,我该如何解决?
答案 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=" Activated " data-off-text=" Deactivated " 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);
}
});