2012-08-31 5 views
0

사용자가 formBeanArrayList의 속성 인 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"

코딩 로직에 문제가 있는지, 그리고 매우 도움이 될만한 수정 사항이 있으면 알려주십시오.

답변

0

나는 당신이 할 수 없다고 생각합니다. 내가 사용하는 솔루션은 Strings (String []) 배열을 폼에 유지하고 javascript를 사용하여 숨겨진 입력을 HTML DOM에 폼 문자열 배열로 추가 (orremove)합니다. 숨겨진 입력에는 사용자가 선택한 첵크 박스를 고유하게 식별 할 수있는 값이 있습니다.

관련 문제