我正在使用复选框在注册表单上切换某些多列表的已启用和已禁用状态。该复选框标有该类别,并且多列表包含属于该类别的项目。jQuery - 未选中复选框
我正在使用jQuery 1.7.2。
$('#sch_cat_hockeyschools').toggle(function(ev) {
ev.stopPropagation();
$("#type_select_hockeyschools").prop("disabled", false);
$("#type_select_hockeyschools").removeProp("disabled", "disabled");
$("#sch_cat_hockeyschools").prop("checked", true);
$("#sch_cat_hockeyschools").prop("checked", "checked");
}, function(ev) {
ev.stopPropagation();
$("#type_select_hockeyschools option:selected").removeAttr("selected");
$("#type_select_hockeyschools").prop("disabled", true);
$("#type_select_hockeyschools").prop("disabled", "disabled");
$("#sch_cat_hockeyschools").prop("checked", false);
$("#sch_cat_hockeyschools").removeProp("checked");
});
样品相应的复选框HTML的:
<input class="catmark" type="checkbox" name="sch_categories[]" id="sch_cat_hockeyschools" value="1" />General Hockey Schools
<input class="catmark" type="checkbox" name="sch_categories[]" id="sch_cat_springhockey" value="2" />Spring Hockey
的问题是,在当点击复选框,复选框不会变得打勾或检查;它立即返回到未检查状态,我认为stopPropagation()
函数将有所帮助。显然不是。多列表按预期启用和禁用,但复选框不勾选。
此问题的结果是,当提交表单时,包含所选类别的数组为空;因此,由于至少有一个检查的类别是表单中的必填字段,处理该表单的PHP脚本会抛出我的一个错误,该错误告诉我必填字段留空。
有关如何确保复选框实际上已被检查并通过扩展将POSTS实际数据添加到处理脚本的任何想法?
谢谢你们。
为什么不使用控制复选框的默认浏览器的行为? – TNC