我在codeigniter中有一个表单,我可以选择在首页显示数据。
<div class="form-group input-group">
<label>Show in Front</label>
<input type="checkbox" id="switch-change" name="show-infront" checked data-on-text="YES" data-off-text="NO" checked data-on-color="success" data-off-color="warning">
</div>
<script type="text/javascript">
$("[name='show-infront']").bootstrapSwitch();
</script>
当我在echo $this->input->post('show-infront')
这样的控制器中打印表单的值时,如果选中'yes',则输出为'on',当选中'no'时,没有任何输出。所以,当我检查是的时候,我想要那个,那么值应该是'是',反之亦然。
答案 0 :(得分:0)
尝试:onSwitchChange ...... 好的,如果未选中复选框,则不在POST中发送其值,因此您需要一个隐藏字段,如下所示: 还需要在init和onChange设置其值
<input type="checkbox" id="switch-change" name="show-infront" data-on-text="YES" data-off-text="NO" checked data-on-color="success" data-off-color="warning">
<input type="hidden" name="show-infront-val"/>
<script type="text/javascript">
var ckbox = $("[name='show-infront']");
var ckbox_val = $("[name='show-infront-val']");
ckbox.on('switchChange.bootstrapSwitch init.bootstrapSwitch', function(event, state) {
if (this.checked) ckbox_val.val('Yes')
else ckbox_val.val('No')
});
ckbox.bootstrapSwitch('state', true);
</script>
顺便说一句,如果你检查php-s isset($ _ POST [&#39; show-infront&#39;])也是一个复选框的好选项