From c42b6dbe262259f6455436d890e53ee622cb51d3 Mon Sep 17 00:00:00 2001 From: zhongxin Date: Wed, 23 May 2018 15:05:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/form/index.js | 41 ++++++++----------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/packages/taro-components/src/components/form/index.js b/packages/taro-components/src/components/form/index.js index 20dcf9d75a0f..4e22e640954d 100644 --- a/packages/taro-components/src/components/form/index.js +++ b/packages/taro-components/src/components/form/index.js @@ -24,44 +24,39 @@ class Form extends Nerv.Component { for (let j = 0; j < tagElements.length; j++) { elements.push(tagElements[j]) } - let formItem = [] + let formItem = {} let hash = {} elements.forEach(item => { if (item.className === 'weui-switch') { - formItem.push({ - [item.name]: item.checked - }) + formItem[item.name] = item.checked return } // console.dir(item) if (item.type === 'radio') { if (item.checked) { - formItem.push({ - [item.name]: item.value - }) + formItem['radio-group'] = item.value } return } if (item.type === 'checkbox') { - if (hash[item.name]) { - formItem.forEach(i => { - if (i[item.name]) { - i[item.name].push({ value: item.value, checked: item.checked }) - } - }) - } else { - hash[item.name] = true - formItem.push({ - [item.name]: [{ value: item.value, checked: item.checked }] - }) + if (item.checked) { + if (hash[item.name]) { + // formItem.forEach(i => { + // if (i[item.name]) { + // i[item.name].push({ value: item.value, checked: item.checked }) + // } + // }) + formItem[item.name].push(item.value) + // formItem[item.name].push({ value: item.value, checked: item.checked }) + } else { + hash[item.name] = true + formItem[item.name] = [item.value] + } } - return } - formItem.push({ - [item.name]: item.value - }) + formItem[item.name] = item.value }) let textareaElements = formDom.getElementsByTagName('textarea') @@ -71,7 +66,7 @@ class Form extends Nerv.Component { textareaEleArr.push(textareaElements[i]) } textareaEleArr.forEach(v => { - formItem.push({ [v.name]: v.value }) + formItem[v.name] = v.value }) this.props.onSubmit({ detail: { value: formItem }