繁体   English   中英

HTML表单到JavaScript变量

[英]HTML Form to JavaScript variable

我有一个剧本。 该脚本必须进行一些计算。 由于现在用户必须编辑文件中的脚本变量,因此我想编写一个表单,该表单在更新表单时始终会更新变量。 表单中的一个变量被更新时,大约总是需要更新十个变量。

例如:

在HTML表单中,有10个类似这样的字段( onchange="formChanged()"来自尝试):

<input type="number" name="pL" step="0.001" value="250000" onchange="formChanged()"/><br>

所以我想在JavaScript中编辑此变量:

var pL=250000;

我尝试了这个:

function formChanged() {
    var x = document.getElementsByName("x")[0].value
    var m0 = document.getElementsByName("pL")[0].value
    var V = document.getElementsByName("V")[0].value
}

但这是行不通的...您有任何建议吗,我做错了什么?

参见https://www.w3schools.com/jsref/met_doc_getelementsbyname.asp

它应该是getElementsByName

 <!DOCTYPE html> <html> <body> <input type="number" name="pL" step="0.001" value="250000" onchange="formChanged()"/><br> <input type="number" name="x" step="0.001" value="250000" onchange="formChanged()"/><br> <input type="number" name="V" step="0.001" value="250000" onchange="formChanged()"/><br> <p id="demo"></p> <script>function formChanged() { var x = document.getElementsByName("x")[0].value var m0 = document.getElementsByName("pL")[0].value var V = document.getElementsByName("V")[0].value document.getElementById("demo").innerHTML = x + ' ' + m0 + ' ' + V; } </script> </body> </html> 

这可行。 请添加完整的代码段。

如果您想通过javascript更改变量的值,请将该值分配给它的value属性。

所以代替

pL=250000;

用formChanged函数编写

document.getElementsByName("pL")[0].value=250000;

从您对要在if上执行的计算的问题中也不清楚,如果说您想将值x和V加为新的pL然后写

var x = document.getElementsByName("x")[0].value
var m0 = document.getElementsByName("pL")[0].value
var V = document.getElementsByName("V")[0].value
document.getElementsByName("pL")[0].value=Number(x)+Number(V)

在HTML5中,“ name”属性已被弃用,并已由许多元素的“ id”属性代替。 我尝试了以下方法,它对我有用。

<input type="number" id="pL" step="0.001" value="250000" onchange="formChanged()"/>

<script>
function formChanged() {
    var m0 = document.getElementById("pL").value;
    alert("The current value is " + m0);
}
</script>

让我知道这是否对您也有用。 另外,请确保在formChanged()函数中的语句后加上分号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM