我有兩個span包含一個帶有相同id的HTML文本框,如「field1」。基於下拉值,在給定時間僅在屏幕上顯示這兩個範圍。顯示跨度中的任何一個或者不顯示任何一個。從兩個具有相同ID的HTML元素之一提取值
我在原型js中使用.hide();
和.show();
來根據下拉值顯示和隱藏這些跨度。但是,只要我在提交時嘗試獲取$F('field1');
的值,我只會獲得第一個HTML文本框的值(該值爲空)。
有沒有一種方法可以解決這個問題,以獲得可見的HTML文本框的值?
我有兩個span包含一個帶有相同id的HTML文本框,如「field1」。基於下拉值,在給定時間僅在屏幕上顯示這兩個範圍。顯示跨度中的任何一個或者不顯示任何一個。從兩個具有相同ID的HTML元素之一提取值
我在原型js中使用.hide();
和.show();
來根據下拉值顯示和隱藏這些跨度。但是,只要我在提交時嘗試獲取$F('field1');
的值,我只會獲得第一個HTML文本框的值(該值爲空)。
有沒有一種方法可以解決這個問題,以獲得可見的HTML文本框的值?
使用類。元素的ID應該是唯一的,因爲它是ID;)
選擇具有指定類名稱的所有元素。您將獲得具有指定類名稱的元素數組。
var eleCollection = document.getElementByClassName("anyClassName");
在此之後,U可以通過這個數組元素的循環,並得到他們的價值觀
for(element in eleCollection) {
var thisValue = element.getAttribute("value");
console.log("Element: ",element," value: ",value);
}
因此,當我循環獲取每個元素時,如何獲取文本框的值?我應該使用
請參閱編輯答案.. – Shades88 2011-12-20 13:19:20
如果您使用的是Prototype,我會建議您堅持Prototype的做事方式。 '$$()'而不是'document.getElementByClassName()','array.each()'而不是'for(var in array)',等等 – dontGoPlastic 2011-12-20 18:51:12
id
在頁面內應該是唯一的。
我假設你有不同的下拉值。如果是這樣,請爲這些跨度分配不同的id
,並使用選定的下拉值選擇其中一個。
沒有兩個元素都不應具有相同的ID - 它必須是一個唯一的標識符。這樣做違反了DTD。將元素更改爲具有不同的ID。 – Polynomial 2011-12-20 09:59:37
2個元素使用class而不是ID。 – yosh 2011-12-20 10:01:23
@Polynomial是的,我同意這一點,但由於某些原因,我被迫爲這兩個組件使用相同的ID。就像,我正在使用Spring。 HTML元素的表單ID應該映射到一個表單對象,因爲一次只能有一個表單對象可用。所以我不能有不同的ID。在Spring中,