0
我被困在下面的问题之前,合并两个元素:如何解析它们变成JSON
我已经创建了输入被解析到JSON在证明我(后来它的形式会。被传输) 现在从每个输入字段输出一个单独的元素获得,请参见:
{
"hash": "",
"serviceVersion": "0.5",
"subject": "yadayada",
"organisator": "dinitante",
"roomstyle": [
"kno"
"da"
]
}
的目标是“organisator”和“roomstyle”到“addednote”相结合,并替换这两个输出。 我尝试过各种东西,但无法得到它的工作,这似乎工作,但我不知道在哪里有改变输出开始:
function join_note()
{
var organisator = document.getElementById('organisator').value;
var roomstyle = document.getElementById('roomstyle').value;
document.getElementById('jointnote').value = roomstyle+organisator;
alert(document.getElementById('jointnote').value);
}
这是需要输入的JS(巴贝尔)并以JSON显示输出:
const isValidElement = element => {
return element.name && element.value;
};
const isValidValue = element => {
return (!['checkbox', 'radio'].includes(element.type) || element.checked);
};
const isCheckbox = element => element.type === 'checkbox';
const isMultiSelect = element => element.options && element.multiple;
const getSelectValues = options => [].reduce.call(options, (values, option) => {
return option.selected ? values.concat(option.value) : values;
}, []);
const formToJSON_deconstructed = elements => {
const reducerFunction = (data, element) => {
data[element.name] = element.value;
console.log(JSON.stringify(data));
return data;
};
const reducerInitialValue = {};
console.log('Initial `data` value:', JSON.stringify(reducerInitialValue));
const formData = [].reduce.call(elements, reducerFunction, reducerInitialValue);
return formData;
};
const formToJSON = elements => [].reduce.call(elements, (data, element) => {
if (isValidElement(element) && isValidValue(element)) {
if (isCheckbox(element)) {
data[element.name] = (data[element.name] || []).concat(element.value);
} else if (isMultiSelect(element)) {
data[element.name] = getSelectValues(element);
} else {
data[element.name] = element.value;
}
}
return data;
}, {});
const handleFormSubmit = event => {
event.preventDefault();
const data = formToJSON(form.elements);
const dataContainer = document.getElementsByClassName('results__display')[0];
dataContainer.textContent = JSON.stringify(data, null, " ");
};
const form = document.getElementsByClassName('contact-form')[0];
form.addEventListener('submit', handleFormSubmit);
你可以使用所产生的JS和HTML – mplungjan
[Codepen示例](https://codepen.io/sprunge1创建[MCVE]/pen/qXvMmd) – Chris
点击'<>'你可以在这里发布 – mplungjan