UNPKG

react-form-data

Version:

React mixin to get form data in nice javascript object format.

44 lines (34 loc) 1.05 kB
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 @getInitialFormData? @formData = @getInitialFormData() else @formData = {} updateFormData: (e) -> t = e.target key = t.getAttribute 'name' if key? newValue = getValue t, @formData[key] @setFormData key, newValue @formDataDidChange() if @formDataDidChange? setFormData: (key, value) -> @formData[key] = value clearFormData: -> @formData = {} resetFormData: (obj) -> @clearFormData() Object.keys(obj).forEach (key) => @formData[key] = obj[key]