为什么这一点javascript让我的复选框很难检查?

为什么这一点javascript让我的复选框很难检查?,javascript,jquery,forms,checkbox,Javascript,Jquery,Forms,Checkbox,我的应用程序有一个表单,它使用复选框按类型和区域对结果进行排序。有两个字段集,一个用于类型,一个用于区域 区域复选框链接到imagemap的区域,因此它也可用于选择多个区域进行排序 我有一个javascript: 这将链接区域复选框和imagemap的区域,以便它们都充当表单输入 这会打破类型复选框(在提交表单时,它们不会注册为被选中),除非我更改位: $('label').click(function () { $area.filter('[data-a

我的应用程序有一个表单,它使用复选框按类型和区域对结果进行排序。有两个字段集,一个用于类型,一个用于区域

区域复选框链接到imagemap的区域,因此它也可用于选择多个区域进行排序

我有一个javascript:

这将链接区域复选框和imagemap的区域,以便它们都充当表单输入

这会打破类型复选框(在提交表单时,它们不会注册为被选中),除非我更改位:

        $('label').click(function () {
            $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click');
            return false;
        });

(将最后一行更改为返回true)

但这使得复选框很难选择,如果单击勾选区域,复选框只响应一次单击,而如果单击复选框标签,复选框只响应双击

我希望这是有意义的,如果需要任何澄清,我会尽量把问题说得更清楚


谢谢您的帮助。

我认为您根本不需要
标签
点击
处理程序,因为您只需通过触发区域
点击
处理程序来切换
复选框
选中的
属性,当设置了
for
属性时,标签的默认行为将自行处理该处理程序到
复选框
id.

您能在JSFIDLE上发布一个相关的功能示例吗?
        $('label').click(function () {
            $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click');
            return false;
        });
        $('label').click(function () {
            $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click');
            return true;
        });