Javascript - 将document.getelementbyid()。value与变量一起使用

问题描述 投票:-1回答:2

我正在尝试使用document.getElementById(my_field).value捕获HTML表单上的文本字段的值,其中变量my_field动态地传递给我的函数,但是我遇到了墙。

你如何在这种情况下使用变量?

该函数似乎不解析变量my_field的内容,而是将其视为字符串,无论我是使用引号,方括号还是花括号。

function myFunction() {
    var my_field = arguments[0];
    var current_value = document.getElementById(my_field).value;
    alert ("Current Value: " + current_value);
}

我这样做是因为我在表单上有多条记录,每行都有自己唯一的id字段。

运行以上内容无效。警告永远不会弹出我认为是因为current_value永远不会被设置。

为了添加更多细节 - 我试图为了这个问题的目的简化一切,因为还有许多其他不必要的复杂性只会减少主要问题 - 在我的HTML表单上是一个文本字段,它在onChange上调用我的函数

onchange="enforce_multiples('quantity[<?php echo $line_id; ?>]',<?php echo $product['minimum'];?>)"

我已经检查了通过将它们的值输出到警报来正确捕获参数[0]和[1]。一切正常,直到我尝试设置quantity_entered值。

<script>
function enforce_multiples() {

var line_id = arguments[0];
var quantity_increments = arguments[1]; 
var quantity_entered = document.getElementById([line_id]).value;

alert("QE" + quantity_entered);

//var quantity_mod = quantity_entered % quantity_increments;
//var revised_quantity = quantity_entered - quantity_mod;  

//alert("RQ: " + revised_quantity);
//document.getElementById([line_id]).value = revised_quantity; 
}
</script>

检查控制台,我收到错误:Uncaught TypeError:无法在geElementById行读取null的属性'value'

javascript variables document getelementbyid
2个回答
1
投票

你应该写document.getElementById(my_field)而不是document.getelementbyid(my_field)


0
投票

好的,所以我深究这个,以防有人感兴趣。

要在document.getElementById()中使用变量,只需添加没有引号的变量名称。

var my_variable = "field1";
document.getElementById(my_variable);

这不适用于我的表单的原因是因为文本字段只有name参数而不是id参数。

所以我需要改变:

<input type="text" name="field_name" value="1234" />

<input type="text" name="field_name" id="field_name" value="1234" />

这对它进行了排序。否则我只是在控制台中获得通用的NULL错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.