Javascript を使用してフォームのフィールドの名前を変更できますか? 変更のように:
<input type="text" name="chicken" id="chicken"/>
に
<input type="text" name="horse" id="horse"/>
Javascript を使用してフォームのフィールドの名前を変更できますか? 変更のように:
<input type="text" name="chicken" id="chicken"/>
に
<input type="text" name="horse" id="horse"/>
もちろん可能です:
var field = document.getElementById("chicken");
field.id = "horse"; // using element properties
field.setAttribute("name", "horse"); // using .setAttribute() method
属性は変更できますname
が、私の意見では、id
.
使用できます:
document.getElementById("chicken").setAttribute('name', 'horse');
編集
次のステートメントは純粋に主観的なものであり、SO の余地がない場合があります。
W3.orgから:
id 属性には、HTML でいくつかの役割があります。
- スタイルシートセレクターとして。
- ハイパーテキスト リンクのターゲット アンカーとして。
- スクリプトから特定の要素を参照する手段として。
- 宣言された OBJECT 要素の名前として。
- ユーザー エージェントによる一般的な目的の処理 (たとえば、HTML ページからデータベースにデータを抽出する際のフィールドの識別、
HTML ドキュメントの他の形式への変換など)
私が見たように、ID はスクリプトから要素を取得するのに非常に便利な一意の識別子です (とりわけ)。個人的には、実行時にどのような操作が行われても、同じセレクターでこの単一の要素を取得できるようにしたいと考えています。 . だから、私はそれを変更しません。
例:ニワトリをhorseに変換する場合、以前はニワトリだったことを念頭に置いて、 で選択するミュータントとして記憶し、他の CSS を使用して馬$('#chicken[name=horse]')
として偽造します。セレクター。
要素オブジェクトにアクセスできるようになったら (つまり、 を使用して)、そのプロパティgetElementById
を変更するだけです。name
el.name = 'horse';
属性はプロパティの値を反映します。