8

Javascript を使用してフォームのフィールドの名前を変更できますか? 変更のように:

<input type="text" name="chicken" id="chicken"/>

<input type="text" name="horse" id="horse"/>
4

5 に答える 5

12

もちろん可能です:

var field = document.getElementById("chicken");
field.id = "horse";  // using element properties
field.setAttribute("name", "horse");  // using .setAttribute() method
于 2013-05-13T11:39:31.010 に答える
9

属性は変更できますnameが、私の意見では、id.

使用できます:

document.getElementById("chicken").setAttribute('name', 'horse');

編集

次のステートメントは純粋に主観的なものであり、SO の余地がない場合があります。

W3.orgから:

id 属性には、HTML でいくつかの役割があります。

  • スタイルシートセレクターとして。
  • ハイパーテキスト リンクのターゲット アンカーとして。
  • スクリプトから特定の要素を参照する手段として。
  • 宣言された OBJECT 要素の名前として。
  • ユーザー エージェントによる一般的な目的の処理 (たとえば、HTML ページからデータベースにデータを抽出する際のフィールドの識別、
    HTML ドキュメントの他の形式への変換など)

私が見たように、ID はスクリプトから要素を取得するのに非常に便利な一意の識別子です (とりわけ)。個人的には、実行時にどのような操作が行われても、同じセレクターでこの単一の要素を取得できるようにしたいと考えています。 . だから、私はそれを変更しません。

:ニワトリhorseに変換する場合、以前はニワトリだったことを念頭に置いて、 で選択するミュータントとして記憶し、他の CSS を使用して$('#chicken[name=horse]')として偽造します。セレクター。

于 2013-05-13T11:40:20.747 に答える
2

要素オブジェクトにアクセスできるようになったら (つまり、 を使用して)、そのプロパティgetElementByIdを変更するだけです。name

el.name = 'horse';

属性はプロパティの値を反映します。

于 2013-05-13T11:42:17.073 に答える