index.html 文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="1script.js" defer></script>
<title>Document</title>
</head>
<body>
<form id="form1" name="userInputForm">
<label for="moq">MOQ:</label><br>
<input type="number" id="moq" name="moq" onfocusout=""><br>
<br>
<div id="calculate"><input type="button" name="button" style="width: 8rem; height: 2rem;" value="Calulate" onClick="priceResults()"></div>
</form>
</body>
</html>
scripts.js 文件
var userInputFormm = document.getElementById("form1");
//var whatMoq = userInputFormm.moq.value;
function priceResults(){
alert(userInputFormm.moq.value);
}
但是当我将
userInputFormm.moq.value
分配给变量whatMoq
时没有结果,因为我相信whatMoq
无法访问userInputForm
。如下所示,在我的 scripts.js 和结果中
但是如果我在函数
whatMoq
中创建priceResults()
变量,它的工作原理如下
我想为同一组变量创建不同的函数。但是这个问题让我将同一组变量初始化为我创建的每个函数的局部变量,这很累人,因为在我的项目中,我有相当多的变量,我的代码看起来很多。
whatMoq
变量来添加数字。
但是如果我将
whatMoq
变量设置为本地变量,它就可以完美地工作。
所以如果我想用这些
whatMoq
变量创建多个函数,那么我每次都必须将它们初始化为局部变量。
真的只有这样吗?
你是:
whatMoq
。这是一个空字符串,因为您已经在第 2 步之前完成了它。priceResults
函数whatMoq
whatMoq
是复制时值的copy,而不是当前值的reference。
你需要注意线性时间的流逝和事情发生的顺序。
您在 的帮助下添加的 javascript (script.js) 文件仅在页面加载时执行一次。
那时你所做的是
所以当 js 文件被编译和运行时,你有引用该表单的变量和带有 whatMoq 的变量,初始值为空字符串(“”)。
但是当您在输入字段中键入内容时。 userInputFormm 对象的 moq 元素值属性在内部更新。
当你点击 calculate priceResults 函数时,
要让它发挥作用,您可以这样做。
脚本.js
var userInputFormm = document.getElementById("form1");
var whatMoq = userInputFormm.moq.value;
function handleMoqChange(e){
whatMoq = e.target.value;
}
function priceResults(){
//alert(userInputFormm.moq.value);
alert(whatMoq)
}
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="1script.js" defer></script>
<title>Document</title>
</head>
<body>
<form id="form1" name="userInputForm">
<label for="moq">MOQ:</label><br>
<input onChange="handleMoqChange(event)" type="number" id="moq" name="moq" onfocusout=""><br>
<br>
<div id="calculate">
<input type="button" name="button" style="width: 8rem; height: 2rem;" value="Calulate" onClick="priceResults()">
</div>
</form>
</body>
</html>