Javascript - 使用 document.getelementbyid().value 和变量
我试图使用 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] 是否通过将它们的值输出到警报正确捕获。在我尝试设置 quantile_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”
您应该编写
document.getElementById(my_field)
,而不是
document.getelementbyid(my_field)
。
好的,如果有人感兴趣的话,我已经搞清楚了。
为了在 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 错误消息。