2017-08-15 22 views
0

したがって、バックエンドに結びついているので、異なる名前を付けることはできません。同じ入力フィールドを持つ1つのページの2つのフォーム

私はdocument.getElementById( 'id')で空であるかどうかをチェックする、異なるIDで同じIDを持つ少数の入力を持っています。

入力フィールドの半分がフォームの1つでチェックされ、残りの半分が他のフォームからチェックされます(ユーザがフォームの1つのみで値を入力している場合)それらは2つの異なるjavascript関数を使用しています。 1つの入力フィールドに対しては、最も近いIDを自動的に取得し、他の入力フィールドでは、他のフォームにすべて移動します。

私の質問は、送信ボタン(またはフォームの近くの他の要素)に最も近い、チェックする要素の値を取得する方法は何ですか?

私はjQuest closest()メソッドを試しましたが、document.getElementByIdのすべてで動作するようには思えません。

+3

plsはあまりにも私達にあなたのコードを表示しますか? – kukkuz

+0

入力フィールドのIDを一意に変更できますか?こうすることで、document.getElementById( 'someId')が確実に正しい要素を返していることを確実にすることができ、jQueryメソッドに依存する必要はありません。 – tommyO

+1

簡単:バックエンドを変更します。 2つの同一フォームに同じIDを付けると、間違ったことをしていることは明らかです。一意のID(IDは一意である必要があります)を使用するか、id属性をclassに変更する必要があります。 ( 'change '、function(){//あなたがやりたかったこと - 例えば$(this).validate();})' jquery'タグを見ると '$(' form.className ' ; ' - ' change listener '(https://api.jquery.com/change/)をすべての

'要素に自動的に束縛し、それらを独立して扱います。 – Nukeface

答えて

1

要素IDは常に一意である必要があります。同じIDを持つ2つ以上の要素を持つことは決してありません。 document.getElementById('someId')は、要素の配列ではなく1要素を返すことを期待しています。複数の要素を取得してIDを複製する必要がない場合は、他の関数を使用できます。 W3Schoolsのから

IDは、ページ内で一意でなければなりません。ただし、指定されたIDを持つ複数の要素が存在する場合、getElementById()メソッドはソースコードの最初の要素を返します。

More about HTML DOM getElementById() Method

関連する問題