我有一个带有th:fields的行的表,一切正常 我需要添加新行,所以我用javascript做了,但是当我提交表单时,这些新行不会被提交。我需要特殊的魔力吗?
th:field="*{configuredProperties[__${iterator.index}__].propertyType}"
谢谢!
编辑: 我创建了这样一行:
function addProperty() {
var rows = $('#propertiesTable tbody tr');
var row = rows[0];
var clone = row.cloneNode(true);
clone.getElementsByTagName('input')[0].value = null;
clone.getElementsByTagName('input')[1].value = null;
clone.getElementsByTagName('input')[2].value = null;
var lastRow = rows[rows.length - 1];
var newId = parseInt(lastRow.getAttribute("id")) + 1;
clone.id = newId;
var link = $(clone).find('#removeProperty')[0];
link.setAttribute('onclick', 'removeProperty(' + newId + ')');
var propertyType = $(clone).find('#propertyType')[0];
propertyType.setAttribute('name', '*{configuredProperties[' + newId + '].propertyType');
var propertyName = $(clone).find('#propertyName')[0];
propertyName.setAttribute('name', '*{configuredProperties[' + newId + '].propertyName');
var defaultValue = $(clone).find('#defaultValue')[0];
defaultValue.setAttribute('name', '*{configuredProperties[' + newId + '].defaultValue');
var tbody = $('#propertiesTable tbody')[0];
tbody.appendChild(clone);
}
答案 0 :(得分:1)
在此块中,您需要提供bean字段的名称
var propertyType = $(clone).find('#propertyType')[0];
propertyType.setAttribute('name', '*{configuredProperties[' + newId + '].propertyType');
var propertyName = $(clone).find('#propertyName')[0];
propertyName.setAttribute('name', '*{configuredProperties[' + newId + '].propertyName');
var defaultValue = $(clone).find('#defaultValue')[0];
defaultValue.setAttribute('name', '*{configuredProperties[' + newId + '].defaultValue');
通过构建像这样的字段
var propertyType = $(clone).find('#propertyType')[0];
propertyType.setAttribute('name', 'configuredProperties[' + newId + '].propertyType');
var propertyName = $(clone).find('#propertyName')[0];
propertyName.setAttribute('name', 'configuredProperties[' + newId + '].propertyName');
var defaultValue = $(clone).find('#defaultValue')[0];
defaultValue.setAttribute('name', 'configuredProperties[' + newId + '].defaultValue');