INPUT要素がまだ存在しない場合は、FORMに動的に挿入する次のコードを使用します。
<form id="form1">
<input type="button" value="Add field if not yet there" onclick="addField()" />
</form>
<script>
function addField()
{
var form1 = document.getElementById("form1");
var field = form1.elements["test"];
if (!field)
{
field = document.createElement("input");
field.type = "text"
field.name = "test";
form1.appendChild(field);
}
}
</script>
このコードは最新のすべてのブラウザーで機能しますが、IE7では機能しません(フィールドは未定義です)。
IE7では、「elements」コレクションに、DOMに動的に追加された要素が含まれていないようです。
既知の回避策はありますか(作成された要素への参照を保持したり、識別子を設定したりすることは別として)?