我从输入标签获得了输入,但是无论我在输入中写入什么,它都会识别为字符串值,因此我无法使用我的条件。
第二个问题,如果我在第一个输入中输入“ddd”,在第二个输入中输入“111”,然后按下按钮,它会在控制台中显示 NaN。我想显示警报而不是这个。我该如何纠正这些?
function addFunc() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
if (typeof x == 'string' || typeof y == 'string') {
var result = parseInt(x) + parseInt(y);
console.log(result);
} else {
alert("Wrong Entry!");
}
}
<input id="num1">
<input id="num2">
<button type="button" onclick="addFunc()">ADD</button>
<p id="result"></p>
isNaN()
来确定小数是否正确解析:
function addFunc() {
var x = parseInt(document.getElementById("num1").value);
var y = parseInt(document.getElementById("num2").value);
if ( !isNaN(x) && !isNaN(y) )
{
var result = x + y;
console.log(result);
}
else {
alert("Wrong Entry!");
}
}
<form onsubmit="addFunc(); return false">
<input type="text" id="num1" />
<input type="text" id="num2" />
<input type="submit" value="Add" />
</form>
或者,如果您想消除所有错误输入(1e 无效),请尝试在字符串值
之前使用
+
符号将其转换为数字。如果字符串无法转换,则会返回 NaN
:
function addFunc() {
var x = +document.getElementById("num1").value;
var y = +document.getElementById("num2").value;
if ( !isNaN(x) && !isNaN(y) )
{
var result = x + y;
console.log(result);
}
else {
alert("Wrong Entry!");
}
}
<form onsubmit="addFunc(); return false">
<input type="text" id="num1" />
<input type="text" id="num2" />
<input type="submit" value="Add" />
</form>