2014-07-13 2 views
0
에 반영 안한다에서 값을 변경

I는 다음과 같은 형식으로 포함 된 위의 페이지 양식에 대한 GET 요청에서봄 양식 ModelAttribute 모 데르

<form:form id="form" name="form" target="dummyHiddenForm" method="post" commandName="myForm" > 

      <span class="container"> 
       <label>TestKey</label> 
       <span class="container-right"> 
        <form:input path="key" id="key" cssClass="text" maxlength="200" cssStyle="width:60%" disabled="true"/> 
        <input type="button" class="refreshIcon" style="width:auto;" onclick="javascript:refreshKey()" /> 
       </span> 
      </span> 

    <span style="width:auto; padding-left: 30%; padding-bottom: 4%; text-align:center; float:right; clear:both;"> 
     <input type="button" class="button" style="width:auto;" value="Submit" onclick="javascript:submitForm()"/> 
    </span> 

</form:form> 

<iframe id="dummyHiddenForm" name="dummyHiddenForm" style="display:none;" ></iframe> 

나는 각 개체 myForm을의 변수 key에 대한 몇 가지 기본 값을 설정하고이 설정되어있다 값 "". 및 refreshKey 내 자바 스크립트 함수()는이 방법이 제대로

function refreshKey(){ 
    document.getElementById('key').value = generateKey() ; 
} 

입니다 작동하고 onclick을 입력 텍스트 필드에 새 키를 설정합니다. 나는 자바 스크립트

function submitForm(){ 
     var formVar = document.forms["form"]; 
     formVar.action = "/test.htm"; 
     formVar.submit(); 
} 

를 사용하여 양식을 제출하고하지만 내 컨트롤러에서 나는 관계없이 입력 필드의 실제 값의 키에 대한 동일한 기본 값 ""을 얻을 버튼을 제출의 클릭에

.

난 (I 파이어 폭스에서 소자를 검사 할 때 적어도 여전히 value="" 표시됨) I 변경된 값을 볼 수 있지만, 값이 실제 DOM 변경되지 않는 자바 스크립트 alert.value 사용하여 시도.

양식을 제출할 때 변경된 값을 가져와야합니다. 어떤 제안이 잘못 되었나요?

답변

0

해결 방법을 알아 냈습니다. 장애인 속성 (예 : disabled="true")으로 인해 문제가 발생했습니다. 자바 스크립트는 acess가 있고 입력의 value 속성을 수정할 수 있지만 스프링 양식을 제출할 때 반영되지 않습니다. 내가 처음에 의심했던 모델 속성 바인딩에는 문제가 없었다. 사용 중지 된 속성이 해제 된 상태에서 올바르게 작동합니다.

그러나 입력 필드를 편집 할 수 없도록 설정하려면 readonly을 true로 설정할 수있는 다른 속성이 있습니다. javascript로 값을 변경하면 값이 양식 제출시 모델 속성에 반영됩니다.

<form:input path="key" id="key" cssClass="text" maxlength="200" cssStyle="width:60%" readonly="true"/>