意外に登場する機会が多いので関数として登録しておく
/**
* make_hidden : hiddenを作成する : Version 1.2
*/
function make_hidden(name, value, formname) {
var q = document.createElement('input');
q.type = 'hidden';
q.name = name;
q.value = value;
if (formname) {
if ( document.forms[formname] == undefined ){
console.error( "ERROR: form " + formname + " is not exists." );
}
document.forms[formname].appendChild(q);
} else {
document.forms[0].appendChild(q);
}
}
使い方:引数は( '名前' , '値', 'フォーム名' )
make_hidden('id', '1234');
とすると
<input type="hidden" name="id" value="1234">
が作成されます。
またHTMLファイル内に複数の<form>タグが存在する場合はフォーム名を指定して呼び出せばOK。
<form name="FM"></form>
<form name="SFM"></form>
の二つのフォームが存在する場合
make_hidden('id', '1234', 'SFM');
とすると name="SFM" の方にhiddenが作成されます
また作成した hidden 属性を削除するには以下の関数を使用します
// delete_hidden : hiddenを削除する : Version 1.1
function delete_hidden( name, value, formname ){
var dom_obj_array = window.document.getElementsByName(name);
for (var i=0; i<dom_obj_array.length; i++){
if ( dom_obj_array[i].value === value ){
element = dom_obj_array[i];
element.parentNode.removeChild(element);
}
}
}
function make_hidden(name, value, formname, override_flag) {
var q = document.createElement('input');
q.type = 'hidden';
q.name = name;
q.value = value;
var form_dom;
if (formname) {
form_dom = document.forms[formname];
} else {
form_dom = document.forms[0];
}
if ( ! override_flag ) {
if (form_dom[name]) {
console.log('フォーム(' + name + ')が既に存在するのでhiddenを作成しません。');
return false;
}
}
form_dom.appendChild(q);
return true;
}
$('<input>').attr({
type : 'hidden',
name : 'redirect_url',
value : redirect_url
}).appendTo('#after12_form');