jQuery复选框问题:无法判断选中状态并读取值
解决jQuery判断复选框选中状态的问题
嗨,我来帮你搞定这个问题~你代码里的核心问题是判断复选框选中状态的写法不对,咱们来修正它:
错误原因
你用了$("#export_1_field_title").is("checked"),这里的"checked"不是有效的jQuery选择器——is()方法里传这个字符串,会去匹配<checked>标签的元素,显然页面里根本没有这个标签,所以判断永远返回false,导致title一直是空值。
几种正确的写法
写法1:用:checked伪类选择器配合is()
这是最直观的jQuery写法,:checked专门用来匹配选中的复选框/单选框:
var title = ''; if($("#export_1_field_title").is(":checked")) { title = 'title'; } alert('Here '+title);
写法2:用prop('checked')方法(推荐)
jQuery的prop()方法专门用于获取DOM元素的布尔类型属性(比如checked、disabled这类),比选择器方式更高效:
var title = ''; if($("#export_1_field_title").prop('checked')) { title = 'title'; } alert('Here '+title);
写法3:直接访问原生DOM元素的checked属性
如果喜欢更贴近原生JS的写法,也可以这样:
var title = ''; if($("#export_1_field_title")[0].checked) { title = 'title'; } alert('Here '+title);
随便选一种替换你原来的判断逻辑,就能正常识别复选框的选中状态啦~
内容的提问来源于stack exchange,提问作者Rana Pratap
相关产品推荐
相关产品推荐

