速報

imgproxyのICO処理にコード実行のおそれ|4.0.16だけでは残る問題を確認

CATEGORY

【JavaScript】formにtype="hidden"のinput要素を追加する

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】formにtype="hidden"のinput要素を追加する

目次

本記事では、JavaScriptでformにtype="hidden"のinput要素を追加する方法をご紹介しています。

JavaScriptでformにtype="hidden"のinput要素を追加したいな。良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

formにtype="hidden"のinput要素を追加する方法

formにtype="hidden"のinput要素を追加する方法はいくつかあります。本記事では3パターンの追加方法をご紹介していますので、ご自身の好みや環境にあわせて選択いただければと思います。

insertAdjacentHTMLでHTMLタグを追加する

ininsertAdjacentHTMLでHTMLタグを指定の位置に追加します。要素を追加するのとは若干ニュアンスが異なりますが、 HTMLタグを追加する方法で考えると一番使いやすいメソッドだと思います。

//ドキュメント上の最初のフォームを取得
const form = document.forms[0];

//form要素にtype="hidden"のinputタグを挿入
form.insertAdjacentHTML(
    'beforeend',
    '<input type="hidden" value="test">'
);

ininsertAdjacentHTMLでは第1引数でHTMLタグの挿入位置を指定します。指定することができる値は下記の通りです。

値説明
beforebegin要素の直前にHTMLタグを挿入する
afterbegin最初の子要素の前にHTMLタグを挿入する
beforeend最後の子要素の後にHTMLタグを挿入する
afterend要素の直後にHTMLタグを挿入する

下記の記事で詳しく解説していますので、参考にしていただければ幸いです。

スポンサーリンク

createElementで要素を生成して追加する

createElementで要素を生成し、setAttributeで属性を追加します。要素の追加する方法としてcreateElementは良く使用されます。createAttributeを併用することが多いですが、ここでは特定の要素にのみ属性を指定するためsetAttributeを使用しています。

//ドキュメント上の最初のフォームを取得
const form = document.forms[0];

//input要素を生成
const input = document.createElement('input');

//input要素にtype属性とvalue属性を設定
input.setAttribute('type', 'hidden');
input.setAttribute('value', 'test');

//form要素の末尾に挿入
form.appendChild(input);

Object.assign()で属性を設定する

前項の内容を少し変更し、属性をObject.assing()で設定してみます。Object.assign()はコピー元オブジェクト→コピー先オブジェクトに複数のプロパティをコピーすることができるメソッドです。扱いには注意が必要ですが、プロパティを列挙することができるため、一度に多くのプロパティを設定したりする処理に向いているメソッドです。

//ドキュメント上の最初のフォームを取得
const form = document.forms[0];

//input要素を生成
const input = document.createElement('input');

//input要素にtype属性とvalue属性を設定
Object.assign(input, {
    type: 'hidden',
    value: 'test',
});

//form要素の末尾に挿入
form.appendChild(input);

詳しい解説は下記ページをご参照ください。IE11やレガシーブラウザには対応していないので、その点ご留意ください。

参考:Object.assign() | MDN

スポンサーリンク

最後に

本記事ではformにinput要素を追加する方法を解説させていただきましが、formにinput要素を追加するだけではなく、他の要素に追加する場合にも応用が利く方法です。 特にinsertAdjacentHTMLとcreateElementは頻繁に使用するメソッドですので、使い方を覚えておくと良いかもしれませんね。

以上、JavaScriptでformにtype="hidden"のinput要素を追加する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク