我正在尝试提醒输入类型的值。警报给我'未定义'。
我已经尝试过查看其他帖子,但没有任何运气。
我的代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script>
/* Global Vars */
var firstNumber = document.getElementById('firstNumber').value;
var secondNumber = document.getElementById('secondNumber').value;
var plus = document.getElementById('plus');
var minus = document.getElementById('minus');
var times = document.getElementById('times');
var divide = document.getElementById('divide');
var result = document.getElementById('result');
function cool() {
//var sum = Number(firstNumber) + Number(secondNumber);
alert(secondNumber);
}
</script>
</head>
<body>
<input type="number" placeholder="Getal 1" id="firstNumber" /> <input type="number" placeholder="Getal 2" id="secondNumber" /><br><br>
<input type="text" id="result" disabled /><br><br>
<button id="plus">+</button> <button id="minus">-</button> <button id="times">x</button> <button id="divide">/</button>
<button onClick="cool()">Test</button>
</body>
</html>
答案 0 :(得分:6)
如果您查看网络控制台,则会在那里发现错误:TypeError: Cannot read property value of null
&#34;
这是因为您的代码正在执行此操作:
var firstNumber = document.getElementById('firstNumber').value;
在元素存在之前 ,这意味着document.getElementById('firstNumber')
为您提供null
,并在value
上查找null
会引发错误(阻止所有来自运行的其余步骤代码,但不会阻止创建cool
函数,因为在运行任何分步代码之前,首先完成了该secondNumber
函数的创建。该错误会导致undefined
无法获取值,因此会保留其默认cool
值,稍后您在调用</body>
时可以看到该值。
通常,除非您有特殊原因,否则请将脚本放在结束head
标记之前。特别是,将脚本放在<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<input type="number" placeholder="Getal 1" id="firstNumber" /> <input type="number" placeholder="Getal 2" id="secondNumber" /><br><br>
<input type="text" id="result" disabled /><br><br>
<button id="plus">+</button> <button id="minus">-</button> <button id="times">x</button> <button id="divide">/</button>
<button onClick="cool()">Test</button>
<script>
/* Global Vars */
var firstNumber = document.getElementById('firstNumber').value;
var secondNumber = document.getElementById('secondNumber').value;
var plus = document.getElementById('plus');
var minus = document.getElementById('minus');
var times = document.getElementById('times');
var divide = document.getElementById('divide');
var result = document.getElementById('result');
function cool() {
//var sum = Number(firstNumber) + Number(secondNumber);
alert(secondNumber);
}
</script>
</body>
</html>
中的这种业务是一种反模式。所以(但还有其他事情需要继续阅读):
cool
但:您的代码正在读取页面加载时的输入值(函数外部的代码立即运行)。您可能想要在单击按钮时阅读它们。如果是这样,请将您的代码移动到 <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<input type="number" placeholder="Getal 1" id="firstNumber" /> <input type="number" placeholder="Getal 2" id="secondNumber" /><br><br>
<input type="text" id="result" disabled /><br><br>
<button id="plus">+</button> <button id="minus">-</button> <button id="times">x</button> <button id="divide">/</button>
<button onClick="cool()">Test</button>
<script>
function cool() {
var firstNumber = document.getElementById('firstNumber').value;
var secondNumber = document.getElementById('secondNumber').value;
var plus = document.getElementById('plus');
var minus = document.getElementById('minus');
var times = document.getElementById('times');
var divide = document.getElementById('divide');
var result = document.getElementById('result');
//var sum = Number(firstNumber) + Number(secondNumber);
alert(secondNumber);
}
</script>
</body>
</html>
函数:
foreach (var item in spTab3.Children)
{
if (item.GetType() == typeof(ListBox))
((ListBox)item).Visibility = Visibility.Collapsed;
if (item.GetType() == typeof(Grid))
((Grid)item).Visibility = Visibility.Collapsed;
....
}
请注意,您的变量不再是全局变量,现在它们很好地在函数内部。一般来说,避免全局变量,全局命名空间已经远过于拥挤。