不使用前端框架,就简单的使用JavaScript、jQuery、Lay UI。
我觉得挺简单的,现在怎么搜不到解决方案了。
我动态添加字段,用中括号和点号作为前缀 name="Products[].Name" ,JavaScript转换json
的还是{... "Products[].Name":"2" ,...},这种形式,没有作为一个集合,我想手工遍历也没有可行的方法,请教各位了
var formData = {};
$('form').find('input, select, textarea').each(function() {
var fieldName = $(this).attr('name');
var fieldValue = $(this).val();
formData[fieldName] = fieldValue;
});
var convertedData = {};
for (var fieldName in formData) {
var fieldParts = fieldName.split(/[\[\]\.]/).filter(function(part) {
return part !== '';
});
var currentObj = convertedData;
for (var i = 0; i < fieldParts.length - 1; i++) {
var part = fieldParts[i];
if (!currentObj[part]) {
currentObj[part] = {};
}
currentObj = currentObj[part];
}
currentObj[fieldParts[fieldParts.length - 1]] = formData[fieldName];
}
var jsonData = JSON.stringify(convertedData);
感谢,不过这个不是chatGPT回复的吧?我意思是传统前端模式下,一对多的表单最佳实践是什么,子表动态添加行,一次递交,如何将表单数据转换为json对象的集合。我现在不知道初始化是否应该
name="Products[0].Name"
name="Products[1].Name" 这样命名,添加删除后这个编号并不好维护,数据添加好后又如何转换为json
ExtJs懒人笔记(3) 动态Grid的实现
cnblogs.com/lucky_hu/archive/2012/07/15/2591995.html
这个和我的问题好像没什么关系吧
layui应该提供了form提交,获取表单JSON的方法