【发布时间】:2021-08-24 05:53:50
【问题描述】:
我对 Js 有一些问题。当用户单击按钮时,我需要在 HTML 文档中添加一个表单。我写了这段代码:
plusBtn.addEventListener('click', () => {
const newLine = document.createElement('div');
newLine.classList.add('line');
newLine.innerHTML = `
<textarea form="shopForm" class="form-control form-data" name="comment" id="comment" rows="3" placeholder="Комментарий" required></textarea>
<input form="shopForm" type="text" class="form-control form-data" name="price" id="price" placeholder="Цена" required>
<input form="shopForm" class="form-data" type="number" name="amount" id="amount" required>`;
dataForm.append(newLine);
});
我需要以我的自定义格式创建一个包含多个项目的 formData。在我的 HTML 文档中,我有 <form> 和 js 在表单中添加我的输入。因为我使用.querySelectorAll,所以我无法访问这些输入,因为它们是动态节点。
dataForm.addEventListener('submit', function(e) {
e.preventDefault();
console.log(window);
const formData = new FormData(dataForm),
comment = document.querySelectorAll('.form-comment'),
price = document.querySelectorAll('.form-price'),
amount = document.querySelectorAll('.form-amount');
console.log(comment);
formData.append('product_url', productUrl.value);
formData.append('user_id', userId);
formData.append('delivery_type_id', delivery.value);
formData.append('package_type_id', package.value);
if (comment.length > 1) {
let items = [];
comment.forEach((item, i) => {
let obj = {};
obj.comment = item.value;
obj.price = price[i].value;
obj.amount = amount[i].value;
items.push(obj);
});
formData.append('items', JSON.stringify(items));
} else {
let items = [];
items.push({
'comment': comment[0].value,
'price': price[0].value,
'amount': amount[0].value
});
formData.append('items', JSON.stringify(items));
}
dataAjaxSend(formData)
.then((response) => {
console.log(JSON.parse(response));
})
.catch((err) => console.log('Eror' + err))
});
我不知道如何创建输入并访问它们。谢谢你的帮助)
【问题讨论】:
标签: javascript json forms input