jQuery.js
と lodash.js
または Underscore.js
を使用。
CoffeeScript
で記述。
ajax
で form
のパラメータ送るときとかに使う。
-
textarea
は使わなかったんで、気が向いたら追加。 -
form
をget
でsubmit
したパラメータから取得できたら楽そうだけど、方法が思いつかなかった。 -
lodash.js
使ってるんだから、もっとスマートに書ける気がする。 -
checkbox
の箇所はパラメータにすると通常はkey[]=1&key[]=0&key[]=1
みたいになると思うけど、オブジェクトにしたかったのでkey[0]=1&key[1]=0&key[2]=1
みたいになるようした。とりあえず動いたけど、動かないパターンもあるかも。
$form = $ 'form'
$formItem = $form.find 'input, select'
params = {}
elms = _.groupBy $formItem, (el) ->
$ el
.attr 'name'
_.each elms, (val, key) ->
switch val[0].tagName
when 'SELECT'
params[key] = $(val).val()
when 'INPUT'
switch val[0].type
when 'radio'
for _val in val
if $(_val).is ':checked'
params[key] = $(_val).val()
break
when 'checkbox'
params[key] = []
_.each val, (_val) ->
params["#{key}[#{i}]"] =
if $(_val).is ':checked' then 1 else 0
console.log params