IE中的Javascript标签+复选框点击问题,用图像替换复选框

时间:2011-05-02 02:14:53

标签: javascript internet-explorer forms checkbox

我的表单上有问题:

http://lexusevents.sanscode.com/datawash/details/pagetwo/1a08c087bdd3f0f85359a2a2e61ca74a

基本上你有一堆<img>坐在标签内,带有一个像这样的复选框:

<label for="mybox">
  <input type="checkbox" id="mybox">
  <img src="">
</label>

单击firefox或chrome中的图像时,标签会触发复选框,我的狡猾的CSS样式会更改图像,使一些文本位于顶部,表示已选中。

现在的问题是,当我在IE浏览器中时,标签点击不起作用。它不会触发复选框。所以我不知道为什么我决定尝试使用jquery来修复它。

    if ($.browser.msie) {


        $('.checkbox label').bind('click', function() {

        checkbx = $(this).children('input');
            me = $(this);
            checkbx.click();

            if (checkbx.is(':checked')) me.addClass('checked');
            else me.removeClass('checked');
        });

        $('.checkbox label').each(function() {
            var c = $('input', this);
            var me = $(this);

            if (c.is(':checked')) me.addClass('checked');
            else me.removeClass('checked');
        });

    }

此代码在以checkbx = $(th开头的行上有错误...显然有一个属性不支持此方法错误,但我无法解决原因。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

这可能是由于表单中的其他输入:

// You are selecting here all the input tag.
checkbx = $(this).children('input');

根据你的html,你也有这个标签:

<input type="hidden" name="form_id" value="1a08c087bdd3f0f85359a2a2e61ca74a"> 

这可能会导致IE出现问题。您可能想要更改查询:

自:

checkbx = $(this).children('input');

To(最有可能是这样或者在查询中更具体,只选择复选框的输入类型):

checkbx = $(this).children(':checkbox');