사용자가 formBean
에 ArrayList
의 속성 인 formBean
을 업데이트해야합니다 (사용자가 formBean
에서 checkBox를 선택 또는 선택 취소 할 때).
페이지가로드되기 전에이 속성의 값은 기본적으로 에서 "on"
으로 설정됩니다.
사용자가 선택을 취소하면 값을 "off"
으로 만들려고합니다.
firebug 디버거를 사용하여 "off"
으로 변경 한 값을 확인할 수 있지만 제출시 양식 객체의 값은 항상 "on"
으로 남아 있습니다.자바 스크립트를 통해 Arraylist의 양식 객체를 업데이트 할 수 없습니다.
내 JSP 코드는 다음과 같습니다. 제가 잘못한 방식으로 값을 설정하면 알려주세요. 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를 통해 제출시 maintainDownloadForm
에서 ArrayList를 importedFiles
의 일부입니다 importEnabled
의 값을 변경하려고합니다. 우리가 예상 한대로 사용자 선택 취소하고이 alert
를 인쇄하지만 같은이 같은 형태의 속성 importEnabled
업데이트지고 있지 않은 경우 else
루프로 갈 수있는 위의 논리에
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.");
}
}
: 사용 된 논리를 검색 페이지가로드되기 전에 항상 그대로 남아 있습니다. "on"
코딩 로직에 문제가 있는지, 그리고 매우 도움이 될만한 수정 사항이 있으면 알려주십시오.