用户输入添加有问题
having trouble with user-input addition
javascript 这里是新手。我试图通过用户输入添加 2 个数字,但代码 returns 在控制台中出现 NaN 警告。我知道其他方法可以做到这一点,但我想使用 ES6 功能。
//HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<input type="number" name="num1" id="num1">
<input type="number" name="num2" id="num2">
<button type="submit" value="+">+</button>
<input type="number" name="num3" id="num3">
</form>
<script src="calculator.js"></script>
</body>
</html>
//JAVASCRIPT
const num1 = parseInt(document.querySelector('#num1').value);
const num2 = parseInt(document.querySelector('#num2').value);
const num3 =Number(document.querySelector('#num3').value);
const form = document.querySelector('form');
form.addEventListener('submit', e =>{
e.preventDefault();
const c = num1 + num2;
form.num3.value = c;
});
发生这种情况是因为
const num1 = parseInt(document.querySelector('#num1').value);
const num2 = parseInt(document.querySelector('#num2').value);
这些变量是在提交方法之外声明的,最初它们被设置为 NaN
因为输入字段在开始时是空的并且 parseInt('')
returns NaN
。要解决这个问题,您只需要在表单提交方法中调用它们,这样在每次表单提交调用中您都会获得输入字段的最新值,例如:
const form = document.querySelector('form');
form.addEventListener('submit', e => {
e.preventDefault();
const num1 = parseInt(document.querySelector('#num1').value);
const num2 = parseInt(document.querySelector('#num2').value);
const c = num1 + num2;
form.num3.value = c;
});
input {padding: 4px 8px; font-size: 1.5rem;}
<form>
<input id="num1" type="number" min="0" /><br>
<input id="num2" type="number" min="0" /><br>
<input id="num3" type="number" readonly disabled/><br>
<button>Submit</button>
</form>
javascript 这里是新手。我试图通过用户输入添加 2 个数字,但代码 returns 在控制台中出现 NaN 警告。我知道其他方法可以做到这一点,但我想使用 ES6 功能。
//HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<input type="number" name="num1" id="num1">
<input type="number" name="num2" id="num2">
<button type="submit" value="+">+</button>
<input type="number" name="num3" id="num3">
</form>
<script src="calculator.js"></script>
</body>
</html>
//JAVASCRIPT
const num1 = parseInt(document.querySelector('#num1').value);
const num2 = parseInt(document.querySelector('#num2').value);
const num3 =Number(document.querySelector('#num3').value);
const form = document.querySelector('form');
form.addEventListener('submit', e =>{
e.preventDefault();
const c = num1 + num2;
form.num3.value = c;
});
发生这种情况是因为
const num1 = parseInt(document.querySelector('#num1').value);
const num2 = parseInt(document.querySelector('#num2').value);
这些变量是在提交方法之外声明的,最初它们被设置为 NaN
因为输入字段在开始时是空的并且 parseInt('')
returns NaN
。要解决这个问题,您只需要在表单提交方法中调用它们,这样在每次表单提交调用中您都会获得输入字段的最新值,例如:
const form = document.querySelector('form');
form.addEventListener('submit', e => {
e.preventDefault();
const num1 = parseInt(document.querySelector('#num1').value);
const num2 = parseInt(document.querySelector('#num2').value);
const c = num1 + num2;
form.num3.value = c;
});
input {padding: 4px 8px; font-size: 1.5rem;}
<form>
<input id="num1" type="number" min="0" /><br>
<input id="num2" type="number" min="0" /><br>
<input id="num3" type="number" readonly disabled/><br>
<button>Submit</button>
</form>