react-form-data
Version:
React mixin to get form data in nice javascript object format.
44 lines (34 loc) • 1.05 kB
text/coffeescript
isCheckbox = (el) -> el.getAttribute('type') == 'checkbox'
isMultiChoice = (checkbox) -> checkbox.getAttribute('value')?
toggleValue = (arr, val) ->
valueIndex = arr.indexOf val
if valueIndex != -1 then arr.splice valueIndex, 1 else arr.push val
return arr
getValue = (el, currentValue) ->
unless isCheckbox el
return el.value
else
if isMultiChoice el
currentValue ?= []
return toggleValue currentValue, el.value
else
return el.checked
module.exports =
UNSAFE_componentWillMount: ->
if ?
=
else
= {}
updateFormData: (e) ->
t = e.target
key = t.getAttribute 'name'
if key?
newValue = getValue t, [key]
key, newValue
if ?
setFormData: (key, value) -> [key] = value
clearFormData: -> = {}
resetFormData: (obj) ->
Object.keys(obj).forEach (key) =>
[key] = obj[key]