【问题标题】:Button doesn't start initially disabled按钮不启动最初禁用
【发布时间】:2017-07-16 14:37:30
【问题描述】:

我有一个提交按钮,并希望它启动时最初是禁用的,所以我做了以下 JavaScript;

var button = document.getElementById("myBtn");
button.disabled = true;

当我运行它时,由于某种原因它仍然被设置为启用。但是,当我有一个功能时,当单击另一个按钮会禁用第一个按钮时,它会被禁用;

function myFunction() {
document.getElementById("myBtn").disabled = true;
}

这是两个按钮的正常声明;

<button id="myBtn">Submit</button>
<button onClick = "myFunction()">Disable Submit Button</button>

我也尝试过使用 setAttribute 和 removeAttribute

PS:我正在使用 Visual Studio 2015,并使用 Chrome 运行。当我使用 Internet Explorer 运行时,它给了我一个奇怪的错误,提示“JavaScript 运行时错误:无法设置未定义或空引用的属性‘禁用’”[仅在 Internet Explorer 上,在 Chrome 中该按钮虽然已启用,但仍能正常工作]。

【问题讨论】:

  • 您必须确保此 JavaScript 代码等待整个文档加载或将其放置在 HTML 的底部,以便在脚本执行时按钮已经加载。跨度>
  • 你在使用DOMContentLoaded事件吗?当使用button.disabled = true;
  • 如果放置得当,禁用功能可以正常工作。为了更好地理解,请使用页眉和页脚编辑您的代码。
  • @ScottMarcus 谢谢你,它成功了!从来不知道实际上受到了影响。我曾经把它放在 HTML 的最右上方。
  • 如果您使用我回答中的第三种方法,则不必将脚本向下移动。

标签: javascript html asp.net visual-studio google-chrome


【解决方案1】:

您必须调用该函数才能将其禁用。

function myFunction() {
  document.getElementById("myBtn").disabled = true;
}
myFunction();
&lt;button id="myBtn"&gt;Submit&lt;/button&gt;

或者使用自调用匿名函数:

(function() {
  document.getElementById("myBtn").disabled = true;
})();
&lt;button id="myBtn"&gt;Submit&lt;/button&gt;

或者等到浏览器加载完页面组件:

window.onload = function(){
  document.getElementById("myBtn").disabled = true;
}
&lt;button id="myBtn"&gt;Submit&lt;/button&gt;

【讨论】:

    猜你喜欢
    • 2020-09-21
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多