2014-06-13 4 views
0

상황 : 체크 박스를 선택하면 체크 박스 값을 false로 지정하여 포스트 요청이 전송됩니다. 그리고 유효성 검사에서 모델을 true로 설정했습니다.JSTL 체크 박스가 작동하지 않음

문제
하지만 세션 속성이기도 한이 Model 객체는이 변경 사항을 JSP에 반영하지 않습니다. 그래서 문제는 obj.value는 항상 두 상황에서 거짓입니다?

<div class="block"> 
<label class="medium">Attach authority:</label> 
<input type="checkbox" value="${Model.noticeDetailsModel.fullAuthority}" 
    <c:if test="${Model.noticeDetailsModel.fullAuthority}">checked="checked"</c:if> 
    id="fullAuthority" onchange="javascript: setNoticeDetails(this);"/> 
</div> 

//set up details 
function setNoticeDetails(obj) { 
    $.post("generateNotice.do", { 
     value : obj.value, 
     name : obj.id, 
     stage : "setNoticeDetails" 
    }); 
} 

상황 2 : 우리는 체크 박스를 체크하면 이후에 (우리가 값을 모델 객체, 즉 "모델"에서와 같이 진실을 설정 한대로), POST 요청을 다시 거짓이 아닌 사실로 체크 박스 값을 전송한다 첫 번째 요청은 내가 POST 요청의 수신 자바 측, 즉 확인

그러나 작동한다고 가정, 내가 컨트롤러 코드를 볼 수 없습니다으로

답변

1

을 보내였다

함수 setNoticeDetails는 아약스 요청을 보내고 응답 그 중 i 성공 처리기를 구현하지 않았기 때문에 코드에서 무시됩니다. 자세한 내용은 http://api.jquery.com/jquery.post/을 참조하십시오.

그래서 그것 때문에 아약스 요청, html로/페이지를 다시로드되지 않는다 - 대신 자바 스크립트를 통해 HTML을 조작해야합니다 - 당신은 그냥 체크 박스의 값을 변경하려면 예컨대,이 작업을 수행 :

function setNoticeDetails(obj) { 
    $.post("generateNotice.do", { 
     value : obj.value, 
     name : obj.id, 
     stage : "setNoticeDetails", 
     success: function(data) { 
      if ($("#fullAuthority").val() === "true"){ 
       $("#fullAuthority").val("false"); 
      } else { 
       $("#fullAuthority").val("true"); 
      } 
     } 
     }); 
    } 
관련 문제