jQuery 复选框始终返回 'undefined'

标签 jquery

信息: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/

相关文章:

javascript - 如何在外部元素上设置内部元素边框?

javascript - 如何在关闭时重置 Bootstrap 模式并再次打开它?

php - 如何在div中提交表单之前使用jquery显示上传图像预览

javascript - 创建垂直图像轮播

jquery - elem.is (':checked' ) vs elem.prop ('checked' )

jquery - 在选项卡之间切换时如何保留表单数据?

javascript - Rails : file nested fields, 显示在每个字段上选择的文件的名称

javascript - 使用 JavaScript 获得最高 margin

jquery float 条形图多系列

javascript - jQuery AJAX JSON 数据被扁平化