检测iOS Checkboxes插件的复选框状态

时间:2013-01-07 16:04:34

标签: javascript jquery jquery-plugins

我正在使用此插件提供复选框和iOS外观: http://ios-checkboxes.awardwinningfjords.com/

显然,当我使用Chrome或Firefox DOM检查器时,它不会触及隐藏的复选框输入值。它始终保持不变,尽管在提交检测到已定义状态的表单后它可以完美地工作。 (我不知道它是怎么做的......)

目前我正在使用一些输入选择,并根据值(是或否)显示另一个元素:

HTML

<select name="announcement" id="announcement">
    <option value="0">No</option> 
    <option value="1">Yes</option>
</select>

jQuery更改检测:

$('#announcement').change(function(){
    if($(this).val() == 0 ){
        $('#listOfCompanies').show();
    }else{
        $('#listOfCompanies').hide();
    }
});

现在,我将第一个select转换为如下所示的复选框:

<input type="checkbox" name="announcement" value="1" id="announcement">

当我使用iOS插件时,有没有办法检测复选框值?

$('#announcement').change(function(){不起作用,因为复选框值不再在DOM元素中更改。

1 个答案:

答案 0 :(得分:1)

如果查看下载附带的jquery-demo html,它会显示如何绑定onchange事件处理程序的示例。

$('#announcement').iphoneStyle({
    onChange: function(elem, value) { 
      // not sure what comes up as the arguments passed in.. but to find out you can do console.log(arguments)
      $('#listOfCompanies').toggle(!value);
    }
});

编辑:

尝试同时传递已选中/未选中的标签选项

$('#announcement').iphoneStyle({
    checkedLabel: 'your checked label',
    uncheckedLabel: 'your unchecked label',
    onChange: function(elem, value) { 
      // not sure what comes up as the arguments passed in.. but to find out you can do console.log(arguments)
      $('#listOfCompanies').toggle(!value);
    }
});