iCheck和jQuery序列化

时间:2016-08-06 14:33:20

标签: jquery icheck

我使用iCheck插件来美化我的复选框。但是,当我使用jQuery序列化从表单中收集所有填充的数据时,不会通过帖子查看或提交选中的复选框。

我想当用户点击要检查的iCheck框时,输入类型复选框的状态实际上并未设置为选中状态。

怎么做?通过序列化可以正常使用普通的HTML复选框。

表格的相关部分:

<div class="form-group">
<label class="">
<input type="checkbox" class="minimal" id="remote" name="remote" value="1">
</label>                        
</div>

脚本:

//iCheck for checkbox and radio inputs
$('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({
checkboxClass: 'icheckbox_minimal-blue',
radioClass: 'iradio_minimal-blue',
checkedClass: 'checked',
});

提交功能:

$.ajax({
  type: "POST",
  url: '/taken/action.php',
  data: $form.serialize(),
  dataType: "json",
  ............

1 个答案:

答案 0 :(得分:1)

在我看来,iCheck将复选框包装在这样的div中:

<div class="icheckbox_minimal" aria-checked="true" aria-disabled="false">
    <input tabindex="5" type="checkbox" id="minimal-checkbox-1" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);">
    <ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"></ins>
</div>

检查时,它会将您指定的已检查类(在本例中为“已检查”)添加到div。

我要做的只是隐藏输入,当你点击div时改变值:

$(".icheckbox_minimal").click(function(){
    // You might want more logic in here since You probably have more then
    // One check box to toggle.
    var val = $("#myHiddenIpnut").val();
    $("#myHiddenIpnut").val(val === "true" ? "false" : "true");
});

现在jQuery将抓住这些输入:)