2010-05-12 91 views
0

此代码预期如何使用jQuery Multifile禁用元素?

if(Multifile.n==0){ 
    $("#btnUpload").attr("disabled","disabled"); 
} 

此代码不使我的元素如预期

$("#btnUpload").attr("disabled",""); 

我jQuery.MultiFile.js添加这些行后没有禁用我的元素是什么我相信是从MultiFile对象中添加和删除文件的位置。据我所知,MultiFile.n是一个计数器。

如何在列表中没有文件时禁用btnUpload,并且只要至少存在一个文件就可以启用它。

+0

不* *回答,因为我不知道什么' Multifile',但第二个示例不会启用该元素。要撤销'.attr(“disabled”,“disabled”),你需要使用'.removeAttr(“disabled”)'。拥有值为“”的“disabled”属性仍会禁用该元素。详细信息:http://www.w3.org/TR/html5/infrastructure.html#boolean-attribute – 2010-05-12 14:12:40

+0

为了禁用一个元素,'.attr('disabled',true)'工作正常 - 显然不是很糟糕将值设置为'禁用' – ThiefMaster 2010-05-12 14:17:21

+0

.removeAttr(“disabled”);也不起作用。我还删除了最初的禁用属性,并且无论我通过Glyphix调试器发现的文件数量为 – 2010-05-12 14:28:38

回答

0

如果元素上有禁用属性,即使该属性为空,它也将始终被禁用。这是因为原来的(SGML的变体)HTML有没有属性值,这样

<INPUT TYPE="text" DISABLED> 

所以,你必须要移除的属性

$('#btnUpload').removeAttr('disabled'); 
+0

我删除初始属性,它仍然不会改变 – 2010-05-12 14:30:00

+0

那么很可能涉及到的按钮是不是与btnUpload ID的元素。你有没有使用google chrome元素检查器检查过? (右键单击 - >检查元素) – 2010-05-12 14:49:59

+0

它绝对是id(和name属性)等于btnUpload的元素。我应该检查页面源以外的东西吗? – 2010-05-12 15:04:48