信息:jQuery 1.6.0 HTML 复选框:
首先我确保 jQuery 已加载:
if(jQuery) {
alert("loaded");
}
就是这样,已经加载了。 然后我立即使用以下行:
var returnvalue = jQuery("#mycheckbox").attr("checked");
alert(returnvalue);
出于某种原因,这总是警告“未定义”。我 100% 确定该 ID 存在。我也尝试过以下方法:
jQuery("#mycheckbox").find('input[type="checkbox"]').each(function(){
alert("foo");
if (jQuery(this).is(":checked"))
ReturnVal = true;
});
但这甚至不会弹出警报。
我做错了什么?到目前为止,我是 jQuery 或 Javascript 专家,但这应该可行......对吗?
编辑: 我试过:
jQuery(document).ready(function() {
alert(id);
var returnvalue = jQuery("#" . id).prop("checked");
alert(returnvalue);
});
alert(id) 为我提供了正确的 ID,但alert(returnvalue) 返回未定义。
我也尝试过:
if(jQuery) {
alert("loaded");
}
jQuery(function() {
alert(id);
var returnvalue = jQuery("#" . id).attr("checked");
alert(returnvalue);
});
结果相同
编辑2: 使用 .prop 并在 id 后附加“+”而不是“.”后(PHP习惯),它有效。谢谢大家的帮助!
最佳答案
- 如果您使用的是 jQuery
1.6
或更高版本,请使用prop()
而不是attr()
:
var returnvalue = jQuery("#mycheckbox").prop("checked");
这是因为,如果您没有在元素中包含显式的 checked
属性,则该属性将是 未定义
,尽管该属性将具有默认值。
- 您需要消除
.find()
:
jQuery("#mycheckbox").each(function(){
alert("foo");
if (jQuery(this).is(":checked"))
ReturnVal = true;
});
<小时/>
在问题中包含您的 HTML 会很有帮助。
关于jQuery 复选框始终返回 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8541141/