jQuery('#set-form').serialize() disabled
jQuery('#set-form').serialize()、
form要素の中の値をまとめて取得してくれる。
今日ハマったのが、inputタグ を disabled="disabled"
にしてると値がとれないということ。
なんて親切なんだ。やめろ。
外人もおこの様子
http://stackoverflow.com/questions/15958671/disabled-fields-not-picked-up-by-serializearray
http://stackoverflow.com/questions/4748655/how-to-make-serialize-take-into-account-those-disabled-input-elements
結局 serialize() をする前に
removeAttr('disabled')するしかないね、みたいな結論になってる様子。
釈然としないけど、外人もそれで納得してるみたいですし、そうなんでしょうか。
removeAttrしてaddAttrするんならデコレータにしたいですけどね。
var deco = function(serialize_fn,$input){ return function(){ $input.removeAttr('disabled'); var ret = serialize_fn() $input.attr('disabled', 'disabled'); return ret } } var $form = $('#set-form'); $form.serialize = deco($form.serialize, $('#include-please')); // ... $form.serialize();
js力が圧倒的に足りない