例えばフォームタグの設置場所に困ったとき。DOMの文法的に配置するのを躊躇してしまうとき。めんどくさいとき←。
そんなときに超絶便利で素敵なポスト方法。
例えば以下のようなボタンをトリガーにしてポストを行う場合。
<button id="button">submit now</button>
jQuery側では以下のようにしてやる。
$(function(){
$('#button').click(function(){
// POSTしたいページを指定
var post = './';
var form = $('<form>', {'action':post, 'method':'POST'});
var input1 = $('<input>', {'type':'hidden', 'name':'n1', 'value':'v1'});
var input2 = $('<input>', {'type':'hidden', 'name':'n2', 'value':'v2'});
var input3 = $('<input>', {'type':'hidden', 'name':'n3', 'value':'v3'});
$('body').append($(form).append(input1).append(input2).append(input3));
$(form).submit();
})
})
これは何をしているのか。至って簡単。
その場でフォームを生成→bodyにアペンド→サブミット→完了。
inputタグ内のvalueは適宜jQueryで集めてきてやればよい。そして集めた分だけformタグ内にぶち込んでターゲットページにぶん投げればよいのである。
jQuery最強伝説。