2011-11-16 2 views
0

링크 드롭 다운 메뉴를 만들려고합니다. 내가 드롭 다운 메뉴 생성하기 위해 레일에 다음을 사용 :자바 스크립트 및 레일즈를 사용하여 링크 드롭 다운 메뉴 만들기

<select id="post_id" name="post[id]"> 
    <option value="">Your posts</option> 
    <option value="">None</option> 
    <option value="/posts/1">Vacations</option> 
</select> 

그리고 나는 다음을 얻기 위해 노력하고 있어요 :이 루비의 결과로

select("post","id", current_user.admin.post.all.collect {|p| [p.title, post_path(p) ] }, {:include_blank => 'None', :prompt => 'Your Posts'}) 

를 드롭 다운 메뉴는 다음과 같습니다 자바 스크립트가 올바른 URL로 사용자를 보낼 그러나

$(document).ready(function() { 
    $("#post_id").change(function() { 
    var newwindow = $("#post_id option:selected").attr("id"); 
    window.location.replace(newwindow); 
    }) 
}); 

, 그것은/관리자/undefined로 이동하려고 시도하고이와 함께 다시 온다 :

이 어떤 도움을 주시면 감사하겠습니다

정의되지 않은 ID로 관리를 = 찾을 수 없습니다!

$("#post_id").change(function() { 
    var newwindow = $("#post_id option:selected").attr("value"); 
    if(newwindow) 
     window.location.replace(newwindow); 
    else 
     // Complain or something. 
}); 

을 또는 단지 <select>에서 바로 값을 잡아 :

답변

0

당신의 <option> 요소 중 어느 것도 id 속성이 없기 때문에 당신은 undefined을 얻고는, 아마 당신은 자신의 값을보고 싶을 :

$("#post_id").change(function() { 
    var newwindow = $("#post_id").val(); 
    if(newwindow) 
     window.location.replace(newwindow); 
    else 
     // Complain or something. 
}); 
+0

도현! 감사! 그리고 너무 빨리 나를 대답을 받아 들일 수있을조차. 새 페이지로 이동하면 "내 게시물"에 대한 내 프롬프트가 더 이상 드롭 다운 메뉴에 표시되지 않습니다. 왜 그런가? – John

+0

@ 존 : 어디서나 같은 '선택'을 사용하고 있습니까? 또한,': include_blank'와': prompt'를 모두 사용하는 것은 조금 이상합니다 : http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html –

+0

예, 선택은 layouts/application.html에 있습니다. .haml 파일. include_blank 및 : 프롬프트에 관한 사실. . . include_blank를 없앴습니다. – John