簡體   English   中英

Javascript-將document.getelementbyid()。value與變量一起使用

[英]Javascript - Use document.getelementbyid().value with a variable

我正在嘗試使用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'

您應該編寫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錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM