单击标签时,不会检查Jquery Fancyform和IE10:Checkbox

时间:2014-11-06 13:43:41

标签: javascript jquery forms checkbox

所以,我有这个奇怪的IE10-Bug(IE11正常工作):

我有一个像这样的复选框:

<div class="select-row row-b">
    <p>some text</p>
    <label><input type="checkbox" name="checkboxGroupA" data-index="1" value="A1"/>A1</label>
</div>

使用Fancyform - jQuery-Plugin v 1.4.2,似乎Fancyform for IE10中存在一个错误:

所以假装这是我的复选框(有点样式):[A1] 单击边框内的某个位置(在[]内部)可以正常工作。选中复选框。但直接单击文本(标签,“A1”)不起作用,复选框状态不会从未选中更改为已检查。

我添加了一个console.log(“...”); to fancyforms transformCheckbox-method就在这里:

check: function () {
                console.log("setting check");
                method.setProp(this, "checked", 1);
            },

只是向我展示了同样的东西。当我点击标签时,“check”不会被触发。

在这里得到一些提示会很棒,因为我现在已经没有想法了。

最诚挚的问候, DOM

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,在这种情况下你需要绑定事件,因为IE版本。

$(".select-row row-b label").bind('click',function(){
   $('input',this).attr("checked",true);
})

编辑:根据这个答案,这是我的工作代码。我在这里编辑这段代码,因为你需要注意几个副作用:

this.$rowLbls = $(this.$el.find('.row-alter label')); //might be $('yourdomelement', 'yoursecond...'')
        this.$rowLbls.click(function(event) {
            var ele = $(this).find('input');
            if( $(event.target).is("label") ) { //check exactly for label, because fired twice if not => would work just once
                if(ele.is(':checked')){
                    ele.prop('checked', false); //prop instead of attr for true/false
                } else{
                    ele.prop('checked', true);
                }
            } 
        });