2013-07-30 48 views
0

我對Javascript非常新,所以很抱歉,如果我不使用正確的術語。以動態創建的形式命名輸入元素

我有一個可以動態增長的表單。換句話說,我有按鈕,只要用戶點擊它,就會添加標籤和輸入字段。

在窗體的末尾,我想要一些運行另一個JavaScript函數的「完成」按鈕。

但是我注意到所有的輸入字段都有相同的id(因爲函數每次都會使id相同)。

訪問這些變量的正確方法是什麼?

以下是動態創建字段的功能。 我還沒有寫入函數來使用表單呢。

function buildDefaultFields(){ 
    // Define container 
    var chargeItem_container = document.getElementById("chargeItem_container"); 
    // INPUT Start Date 
    chargeItem_container.appendChild(document.createTextNode('Start Date: ')); 
    var startDate = document.createElement("input"); 
    startDate.type = 'date'; 
    startDate.name = 'startDate'; 
    startDate.id = 'startDate'; 
    chargeItem_container.appendChild(startDate); 
    chargeItem_container.appendChild(document.createElement("br")); 

} 

回答

1

您應該動態添加元素,以便每個元素都有一個新的ID。你可以使用一個簡單的計數器來追加你的ID名稱。

例如,如果你保持全球var count = 0,那麼你的第一個ID可能是'startDate-' + count這將是startDate-0,然後count執行增量,以便下一次添加的元素,因此將獲得ID 'startDate-' + count = startDate-1

希望有所幫助。

+0

這應該很好!謝謝,我只是想知道這是否是正確的做法。 – kmace

2

如果不打算唯一標識一個單一的元素,不要使用一個ID,而是使用一類

startDate.className = 'startDate'; 

然後使用getElementsByClassName方法來檢索他們

VAR元素= document.getElementsByClassName(」 startDate'); //然後循環遍歷元素

+0

會以任何特定的方式訂購嗎? – kmace

+0

@kamula我猜在返回的集合中的元素是源碼順序,但我不能肯定地說。 – Musa