2013-03-31 3 views
2

Play 프레임 워크를 사용하여 선택하지 않은 체크 박스의 값을 가져와야합니다. 체크 박스를 체크하면 값을 얻을 수 있습니다. 다음과 같이재생 중 선택하지 않은 체크 박스에서 값 가져 오기

내 HTML은

<input type="checkbox" name="correctAnswer" value="true"> 

나는 숨겨진 필드를하고 시도

String[] segaMega = request().body().asFormUrlEncoded().get("correctAnswer"); 

나는 나에게 단지 확인 상자의 배열을 제공하는 컨트롤러에서 데이터를 얻을 방법이있다 체크 박스 트릭 전에,하지만 그건 잘 작동하지 않았다. 놀이에는 저를 도울 수있는 것이 있습니까?

+0

이것은 Play Framework 문제가 아니라 HTML 디자인입니다. 기본적으로 양식은 체크되지 않은 체크 상자의 값을 제출하지 않습니다. 확인란에 값을 모두 전달하려면 (선택하지 않은 경우에도) 요청에 새 매개 변수를 추가해야합니다. 이미 시도한 것처럼 숨겨진 필드를 사용하여 수행 할 수 있습니다. ** 또는 ** JavaScript/jQuery를 사용하여 확인란의 모든 값을 가져 와서 새 매개 변수로 전달합니다. 이것은 여전히 ​​나쁜 아이디어이며 실제 기능 요구 사항은 무엇입니까? –

+0

자, 그건 당신의 요구 사항에 대한 높은 수준의 정의입니다. 당신이 숨겨진 필드 또는 다른 곳에서 확인란의 값을 처리해야 할 것 같습니다. –

답변

0

귀하의 의견에 따르면 실제로 서버 측에 확인 된 값과 전체 값 목록이 있어야합니다. 가장 좋은 방법은 구분 기호로 연결된 확인란의 값을 보유 할 양식에 숨겨진 필드가 있어야합니다. 이 예에서는 파이프 (|)를 사용합니다.

<script type="text/javascript"> 
    function beforeSubmitQuestion() { 
     var hidden = document.getElementById("hidChxValues"); 
     hidden.value = ""; 
     var checkboxes = document.getElementsByName("correctAnswer"); 
     for(var i = 0; i < checkboxes.length; i++) { 
      hidden.value += checkboxes[i].value + "|"; 
     } 
     return false; 
    }; 
</script> 

<form id="yourForm" onsubmit="beforeSubmitQuestion(); "> 
    <input type="hidden" id="hidChxValues" /> 

    <input type="checkbox" name="correctAnswer" value="true" /> Valid 
    <br /> 
    <input type="checkbox" name="correctAnswer" value="false" /> Invalid 
    <br /> 
    <input type="submit" /> 
</form> 

내가 jsfiddle에서 테스트했습니다 : 나는 서버에 양식 제출을 방지하기 위해 onsubmit의 끝 부분에 연결된 값을 확인하기 위해 대신 type="hidden"type="text"를 사용하고 return false; 추가 제외 http://jsfiddle.net/tdDbg/을 (오류로 반환됩니다).

Play 또는 다른 기술을 사용하여 서버 사이드 코드를 처리 할 수 ​​있습니다. 일반 서블릿도 가능합니다.

관련 문제