【问题标题】:How can I disable an element using jQuery Multifile?如何使用 jQuery Multifile 禁用元素?
【发布时间】:2010-05-12 14:09:29
【问题描述】:

此代码未按预期禁用我的元素

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

此代码未按预期启用我的元素

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

我在 jQuery.MultiFile.js 中添加了这些行,我认为这是在 MultiFile 对象中添加和删除文件的位置。据我所知,MultiFile.n 是一个计数器。

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

【问题讨论】:

  • 回答,因为我对Multifile 一无所知,但是您的第二个示例无论如何都不会启用该元素。要撤消.attr("disabled", "disabled"),您需要使用.removeAttr("disabled")。具有值为 "" 的 disabled 属性仍会禁用该元素。详情:w3.org/TR/html5/infrastructure.html#boolean-attribute
  • 要禁用一个元素,.attr('disabled', true) 可以正常工作 - 显然不如将值设置为“禁用”那么糟糕
  • .removeAttr("disabled");也不起作用。我还删除了初始禁用属性,无论文件数量如何,它都保持启用状态
  • 我通过 Glyphix 调试器发现在文档加载时计数器实际上是 2。我将条件更改为匹配,并且可以切换。但是,该按钮似乎没有初始化为禁用

标签: .net javascript jquery multifile-uploader


【解决方案1】:

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

<INPUT TYPE="text" DISABLED>

所以你必须删除属性

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

【讨论】:

  • 我删除了初始属性,它仍然没有改变
  • 那么可能涉及的按钮不是具有 btnUpload id 的元素。你用谷歌浏览器元素检查器检查过吗? (右键单击 -> 检查元素)
  • 肯定是id(和name属性)等于btnUpload的元素。我应该检查页面源以外的其他内容吗?
  • 我使用了萤火虫&lt;input type="submit" id="btnUpload" value="Upload All" name="btnUpload"&gt;
  • 我在上面提到,当列表中没有文件时,我发现计数实际上是 2。我还确认我的切换代码的​​位置很好。但是,除非我设置了&lt;input disabled&gt;,否则我无法让按钮初始化禁用,在这种情况下它会永远保持禁用状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 2015-01-24
相关资源
最近更新 更多