2011-10-06 3 views
1

레일 2.3.8에서 프로젝트를 개발 중이며 모델 대화 상자의 드롭 다운 메뉴에서 선택된 항목을 가져와야합니다. 레일의 모델 대화 상자에서 어떻게 할 수 있습니까?레일 2.3.8의 모델 대화 상자에서 선택한 항목을 얻는 방법은 무엇입니까?

+0

질문은 매우 모호하며, Rails보다 JavaScript에 더 많은 관련이있는 것으로 보입니다. "선택한 항목 가져 오기"의 의미를 정의해야합니다. 즉시 값을 제출 하시겠습니까? 아니면 저장하고 나중에 제출 하시겠습니까? 또한 조치를 취할 시나리오는 무엇입니까? 예 : 모달 상자가 닫히거나 사용자가 선택 항목을 변경하면 –

+0

사용자가 드롭 다운 메뉴에서 특정 항목을 선택할 때 특정 div를 업데이트해야합니다. 하지만 observe_field를 사용하여 해보려고했지만 나에게 도움이되지 못했습니다. "collection_select"드롭 다운 메뉴를 사용하고 있습니다. 그래서 레일에 있는지 여부를 알아야합니다. 감사합니다. –

+0

예, 가능합니다. Prototype에 대한 경험이 거의 없었기 때문에 오래 전부터 observ_field를 설정하는 데 많은 도움이되지 않습니다. 그러나 내 첫 번째 생각은 이벤트 콜백이 등록되지 않았거나 JavaScript 오류입니다. 드롭 다운 상자가 변경 될 때 JavaScript 코드가 실행되는지 확인할 수 있습니까? 그렇다면 오류가 발생 했습니까? –

답변

0

당신이 더 코드 (코드를 제공하고 사람들이 구체적인 답변을 줄 수있을 것입니다)를 지정하지 않은 같은 일부 조정이 작동합니다 예 : 양식 도우미에 의해 생산되는이 같은 뷰 뭔가에

를 : 이 같은 JQuery와 뭔가

JS에서
<select id="user_role_ids" name="user[role_ids]"> 
<option value="1" selected="selected">Reader</option> 
<option value="2">Author</option> 
</select> 
<div id="role_output"></div> 

은 선택에 이름 ​​또는 모델의 ID를 추출 없습니다 :

<script type="text/javascript" charset="utf-8"> 
$("select").change(function() { 
    var text = $('#user_role_ids option:selected').text() 
    var value = $('#user_role_ids option:selected').val() 
    $('#role_output').html(text+" =>"+value) 
}); 
</script> 

모든 당신이 트라이하지 않으려면 레일을 포함 할 필요 gger JQuery와의 경우 게시물에 오히려 추출 값보다 그것을 위해 특별히 설정 작업에뿐만 아니라 컨트롤러에서 작업 :

모든 observe_field가하는, 당신이 원하는 내용에 따라됩니다
$.post('/controller/my_action', ...); 

, 당신 그것을 필요로하지 않을지도 모른다.

관련 문제