【问题标题】:Change all 'disabled' attributes to 'readonly' attributes on page load?在页面加载时将所有“禁用”属性更改为“只读”属性?
【发布时间】:2013-10-11 07:57:57
【问题描述】:

我一直在输入文本框上使用disabled 属性使它们无法编辑。问题是我无法更改 IE 中 disabled 字段的字体颜色。

所以我尝试使用以下代码在页面加载时将所有 disabled 字段更改为 readonly 字段:

$("input[type=text][disabled]").attr("readonly","readonly").removeAttr("disabled");

无论我把上面的代码放在哪里,它都不起作用。但是当我在脚本控制台中运行它时,它可以工作。

更新:
找到了原因。我正在使用提供pageLoad 的 ASP.NET Ajax——在我的情况下,pageLoad 中的代码禁用了我的文本框。在“pageLoad”事件的末尾添加了上面的代码,它运行良好。谢谢!

【问题讨论】:

  • 你试过用.ready()函数包装它吗?
  • “不管我把上面的代码放在哪里都行不通” 你在哪里试过?如果它在标记中具有该属性的所有元素的下方,那么它应该可以工作。 (或使用ready,但如果您可以将脚本标签放在标记中的其他元素下方,则无需使用ready。)
  • @Sergio:是的,我确实将它包裹在 ready 中。
  • 我推荐$("input:text[disabled]").prop({readonly:true, disabled:false})
  • 您有示例链接吗?

标签: javascript jquery html asp.net-ajax


【解决方案1】:

试试

$(function() { /* your code */ });

这将在页面加载后执行代码。

【讨论】:

    【解决方案2】:

    您可以在 onload 事件中尝试,

    $( document ).ready(function() {
        $("input[type=text]:disabled").attr("readonly","readonly").removeAttr("disabled");
    });
    

    【讨论】:

    • 如果你有 jQuery 可用,你应该用它来绑定事件!
    • ……但其中一个可以更好地编码。另外,请说明有什么区别以及在什么情况下选择什么选项。
    猜你喜欢
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2014-07-21
    • 2017-04-24
    • 2018-12-15
    • 1970-01-01
    • 2014-04-12
    • 2015-05-17
    相关资源
    最近更新 更多