在JavaScript中动态生成表单,但添加的每个新字段都会丢失先前字段的值,可以通过以下步骤解决该问题:
document.createElement('form')
方法来创建一个新的表单元素。form.id = 'myForm'
来设置ID。document.createElement('input')
方法来创建新的输入字段。input.name
和input.type
属性来设置名称和类型。下面是一个示例代码:
// 创建表单元素
var form = document.createElement('form');
form.id = 'myForm';
// 存储字段值的对象
var fieldValues = {};
// 添加字段
function addField() {
var input = document.createElement('input');
input.type = 'text';
input.name = 'field' + Object.keys(fieldValues).length;
input.addEventListener('input', function() {
fieldValues[input.name] = input.value;
});
form.appendChild(input);
}
// 添加按钮
var submitButton = document.createElement('button');
submitButton.textContent = '提交';
submitButton.addEventListener('click', function() {
// 提交表单的逻辑
console.log(fieldValues);
});
form.appendChild(submitButton);
// 添加字段按钮
var addButton = document.createElement('button');
addButton.textContent = '添加字段';
addButton.addEventListener('click', addField);
form.appendChild(addButton);
// 将表单添加到页面中
document.body.appendChild(form);
这个示例代码中,每次点击"添加字段"按钮时,会动态添加一个新的输入字段,并且在输入字段的值发生变化时,会将其存储到fieldValues
对象中。当点击"提交"按钮时,会将存储的字段值打印到控制台。
推荐的腾讯云相关产品:腾讯云云函数(Serverless Cloud Function),它是一种无需管理服务器即可运行代码的计算服务,可以用于处理表单提交等场景。详情请参考腾讯云云函数产品介绍:腾讯云云函数。
领取专属 10元无门槛券
手把手带您无忧上云