javascript:未捕获的TypeError:无法将属性'disabled'设置为null

时间:2018-08-10 13:48:51

标签: javascript c#

我想知道为什么我的脚本没有使用id值吗?

我在test.js命名的单个文件中的单独文件夹中使用了此代码 这是我的起始代码。

var myInput = document.getElementById("newPass");
var confInput = document.getElementById("confpsw");
var letter = document.getElementById("letter");
var capital = document.getElementById("capital");
var number = document.getElementById("number");
var length = document.getElementById("length");
var special = document.getElementById("special");    
document.getElementById("Button").disabled = true;

我的查看代码是..

<button id="Button" class="btn btn-lg btn-primary btn-block btn-signin" type="submit">Submit</button>

我收到这样的错误...

未捕获的TypeError:无法将属性“禁用”设置为null

为什么我的脚本无法在cshtml中工作?

5 个答案:

答案 0 :(得分:1)

似乎代码在DOM准备就绪之前就在运行。尝试使用DOMContentLoaded

  

当初始HTML文档已完全加载并解析而无需等待样式表,图像和子帧完成加载时,将触发DOMContentLoaded事件。

document.addEventListener("DOMContentLoaded", function(event) {
  document.getElementById("Button").disabled = true;
});

答案 1 :(得分:1)

检查以下代码可能会对您有所帮助。因为您需要在“文档内容已加载”事件上附加事件许可方。

SELECT
    stock_levels.id,
    stock_levels.part_number,
    stock_levels.minimum_stock,
    stock_levels.maximum_stock,
    COUNT(automatic_transmission_jobs.id) AS in_stock,
    in_stock - maximum_stock AS levels
FROM stock_levels
LEFT OUTER JOIN automatic_transmission_jobs USING (part_number)
WHERE
    automatic_trasmission_jobs.test_result != 'Not Tested'
    AND automatic_trasmission_jobs.status !='pwa'
GROUP BY stock_levels.id;
document.addEventListener("DOMContentLoaded", function(event) {
  document.getElementById("Button").disabled = true;
});
.centered {
  color: black;
  width:100px;
  height:30px;
  position: fixed;
  top: 50%;
  left: 50%;
  /* bring your own prefixes */
  transform: translate(-50%, -50%);
}

答案 2 :(得分:1)

与cshtml无关。

如果您将行添加到标头中以获取Dom元素,则由于DOM尚未加载,因此该行将无法工作。

将javascript放在正文(脚本或代码)的末尾,或在浏览器加载DOM后使用DOMEvent运行JS。

在JS中:https://developer.mozilla.org/fr/docs/Web/Events/load

在JQuery中:https://api.jquery.com/ready/

答案 3 :(得分:-1)

您是否首先加载了DOM?

window.addEventListener('load', () => {
  document.querySelector('#Button').disabled = true;
});

答案 4 :(得分:-1)

似乎正在为我工​​作。在下面找到代码。这是一个简单的html文件。

<html>
<head>
<script type="text/javascript">

function Clicked(){
    document.getElementById("Button").disabled = true;
}

</script>

</head>

<body>

    <button id="Button" class="btn btn-lg btn-primary btn-block btn-signin" type="submit">Submit</button>
    <button type="button" OnClick="Clicked()">Click Me!</button>

</body>
</html>