我试图使用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'
答案 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错误消息。