あえて画面遷移したい人のためのForm関数
Ajaxでデータ投げたら、エラーページのHTMLが丸々返ってきた経験ありませんか?
その度に、Formを作成するのもめんどくさいので、関数化してみました。
$.form = function(s) { var def = { type: 'get', url: location.href, data: {} }; s = jQuery.extend(true, s, jQuery.extend(true, {}, def, s)); var form = $('<form>') .attr({ 'method': s.type, 'action': s.url }) .appendTo(document.body); for (var a in s.data) { $('<input>') .attr({ 'name': a, 'value': s.data[a] }) .appendTo(form[0]); }; form[0].submit(); }
$.ajaxの引数に似せて作ってあるので、こんな感じに設定できます。
簡易版なので、dataの引数はObject型しか対応してません。
$.form({ type: 'post', url: '/frontend_dev.php/user/new', data: { id: 1, name: 'hoge' } });