「Duplicate form field id in the same form」エラーの原因と対処法

Web開発
この記事は約3分で読めます。

こんにちは、@Manabu です。

サイトの動作に影響がなくても、検証ツールでは発生してしまっているエラーってよくありますよね。

今回は、「Duplicate form field id in the same form」というエラーが発生していたので、どの様なエラーでどうすれば解消するのかまとめていきます。

Duplicate form field id in the same formとは?

このエラーは、1つのHTMLフォーム内において、複数の要素が同じid属性を持っている場合に発生します

HTMLのid属性は、ドキュメント内で一意である必要があるため、同じidが複数の要素に割り当てられているとエラーが発生します。

エラーの例

例えば、以下の様な入力フォームが存在するとエラーが発生します。

<input type="text" id="name" name="name" class="Form-Item-Input" placeholder="例)山田 太郎">
<input type="email" id="name" name="email" class="Form-Item-Input" placeholder="例)example@example.com">

こちらは、それぞれ名前とメールアドレスを入力する欄ですが、id属性が同じ「name」になってしまっているため、以下の様なエラーが発生します。

解決策

エラーを解決するためには、すべてのid属性を一意にする必要があります

静的なフォームの場合

先ほどの例だと、以下のように適切なid属性を設定することで解消します。

<input type="text" id="name" name="name" class="Form-Item-Input" placeholder="例)山田 太郎">
<input type="email" id="email" name="email" class="Form-Item-Input" placeholder="例)example@example.com">

開発中に、一つのフォームをコピーしたりすると、変え忘れてしまったりすることがあるので気をつけましょう。

動的なフォームの場合

JavaScriptで、動的に同じフォームを生成していたりする場合にも、考慮する必要があります。

その場合は、一意の値をid属性に付与するようにカスタマイズする必要があります。

まとめ

「Duplicate form field id in the same form」エラーは、HTMLの基本的なルールであるidの一意性を守ることで回避できます。

フォームが動的に生成される場合や、複数の要素を扱う際は、意図せずidが重複しないように注意しましょう。