为什么这个javascript让我的复选框很难检查
Why is this bit of javascript making my checkboxes difficult to check?
我的应用程序有一个表单,它使用复选框按类型和区域对结果进行排序。共有2个字段集,一个用于类型,另一个用于区域。
区域复选框链接到图像地图的区域,因此它也可以用于选择多个区域进行排序。
我有这样的javascript:
这链接了区域复选框和图像地图的区域,使它们都充当表单输入
var $area = $('area');
$area.click(function(){
var $checkbox = $('#' + $(this).data("areanum"));
$checkbox.attr('checked', !$checkbox.attr('checked')).button('refresh');
});
$('label').click(function () {
$area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click');
return true;
});
这会破坏类型复选框(当表单提交时,它们不会注册为已检查),除非我更改位:
$('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;
});
(更改最后一行以返回true)
但这使得复选框很难选择,如果单击了勾选区域,它们会响应一次单击,但如果单击了复选框标签,它们只响应双击。
我希望这是有道理的,如果需要澄清的话,我会尽量把这个问题说得更好。
谢谢你的帮助。
我认为您根本不需要label
click
处理程序,因为您只是通过触发区域click
处理程序来切换checkbox
checked
属性,当标签的for
属性设置为checkbox
id时,该处理程序将由标签的默认行为自行处理。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- Angular JS Filter-通过3个复选框进行筛选
- 如果选中了多个复选框,如何添加事件
- Javascript复选框函数:;缺少:在属性id之后"
- JavaScript-切换“;全部检查”;复选框true/false
- 激活输入的复选框有效,但如果一行输入重复,它的行为会很奇怪
- 为什么这个javascript让我的复选框很难检查
- 勾选所有复选框在gridview中勾选所有复选框花费很长时间
- Angularjs的模式在复选框中表现得很奇怪
- 复选框确实'nt在表现得像单选按钮之后,再次表现得很理想