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

时间:2019-02-14 15:26:22

标签: javascript variables document getelementbyid

我试图使用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上调用了我的函数< / p>

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>

检查了控制台,我收到了错误:未捕获的TypeError:无法读取geElementById行上null的属性'value'

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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错误消息。

相关问题