我需要更新一个属性,formBean
该属性是用户选中或取消选中复选框时ArrayList
的一部分。
该属性的值默认设置为在页面加载之前。
当用户取消选中时,我试图将值设为.
我能够看到更改为使用 firebug 调试器的值,但在提交时,表单对象的值始终保持不变。formBean
"on"
formBean
"off"
"off"
"on"
我的 JSP 代码如下。如果我以错误的方式设置值,请告诉我。
Struts 应用程序
JSP中的显示逻辑:
<input type="checkbox"
name="importedFiles[<c:out value='${stts.count - 1}'/>].importEnabled"
id="importedFiles[<c:out value='${stts.count - 1}'/>].importEnabled"
onClick="replicateCheckbothis, <c:out value='${stts.count - 1}'/> )"
<c:if test="${importedFiles.importEnabled != null}">checked</c:if> />
我们正在尝试在通过 JS 提交期间更改importEnabled
其是 arrayListimportedFiles
的一部分的值。maintainDownloadForm
请在下面找到使用的逻辑:
function checkSelectedAndImport()
{
var anyClicked = "none";
for(var i = 0; i < <c:out value='${maintainDownloadForm.importedFileLength}' />; i++)
{
var element = document.getElementById("importedFiles[" + i + "].importEnabled");
if(element != null)
{
if(element.checked)
{
anyClicked = "true";
element.setAttribute('value', 'on'); alert('Selected--->'+element.getAttribute('value'));
}
else
{
element.setAttribute('value', 'off');
alert('Not Selected--->'+document.getElementById("importedFiles[" + i + "].importEnabled").value);
}
}
}
if(anyClicked != "none")
{
submitDGForm(getVMWareForm(),'saveImport');
}
else
{
alert("No rows have been selected for import. Please select data to import. To cancel the import, click on cancel.");
}
}
else
在上面的逻辑中,当用户取消选中并按预期打印时,我们可以进入循环,alert
但是表单属性没有得到更新,importEnabled
因为它始终保持"on"
在页面加载之前的情况。
请让我知道编码逻辑是否有任何问题以及相同的修复,因为它会非常有帮助。