2017-08-15 65 views
0

所以我有一個頁面上有兩個相同的表單,我不能給出不同的名稱,因爲它們綁定到後端。在同一個輸入字段的一頁上的兩種形式

我有幾個在不同窗體上有相同ID的輸入惡魔,如果它們是空的,用document.getElementById('id').value;

奇怪的是,在的形式,而另一半一個被檢查的輸入字段的一半從其他形式的檢查,(這是當用戶僅在的一種形式輸入值)儘管他們使用2種不同的javascript功能。對於一個輸入字段,它會自動獲取最接近的ID,而其他字段則會一直到其他表單。

我的問題是我怎樣才能得到最接近提交按鈕(或其他表單附近的元素)的元素的值?

我嘗試過使用jQuest closest()方法,但我似乎無法使用所有document.getElementById。

+3

告訴我們你的代碼也請? – kukkuz

+0

您可以更改輸入字段上的ID以使其唯一嗎?這樣你可以確保你是document.getElementById('someId')肯定返回正確的元素,你不必依賴jQuery方法。 – tommyO

+1

簡單:更改後端。當你給兩個相同的表單使用相同的ID時,顯然你做錯了什麼。你應該使用唯一的ID(如在ID中應該是唯一的,總是)或者將id屬性改爲class。 ('change',function(){//你想做什麼 - eg $(this).validate();}) ;' - 會自動將['change'listeners](https://api.jquery.com/change/)綁定​​到所有'

'元素並獨立處理它們。 – Nukeface

回答

1

元素ID應始終是唯一的。你不應該有2個或更多的元素具有相同的ID。 document.getElementById('someId')期望返回1個元素,而不是元素數組 - 如果您想獲取多個不需要複製ID的元素,還可以使用其他函數。

從W3Schools的:

的ID應該是一個頁面內是唯一的。但是,如果存在多個具有指定ID的元素,getElementById()方法將返回源代碼中的第一個元素。

More about HTML DOM getElementById() Method