2011-01-04 3 views
0

내 레일 앱에는 사용자가 다른 사용자를 검색 할 수있는 검색 창이 있습니다. 현재 사용자가에서 검색을 제출하면 검색 결과 페이지로 리디렉션됩니다. 그 결과를 같은 페이지의 div에로드하고 싶습니다. 내 웹 사이트 탐색 링크를 사용하여이 작업을 수행 할 수 있었지만 jQuery 및 레일스에 익숙하지 않아이 작업을 이해할 수 없습니다.div jquery 및 rails에 검색 결과로드

내 jQuery를 내 탐색 링크에 해당 :

$(function() { 
    $('#links a').live('click', function() { 
     $('#pages').load(this.href).fadeIn('slow'); 
     return false; 
    }); 
}); 

내 검색 기능과 동일한 기능을 수행 할 내 시도 ...

$(function() { 
    $("input#search").parents("form").submit(function() { 
    $('#pages').slideUp('slow').load(this.href).slideDown('slow'); 
    return false; 
    }); 
}); 

어떤 도움이 많이 유용한 jQuery를 자습서와 함께 ~ 주시면 감사하겠습니다 초보자를위한!

내 양식 :

<div id="search_bar"> 
    <form action="/search" method="get"> 
    <input class="tb10" id="search" name="search" onclick="this.select();" type="text" value="Find Users" /> 
    </form> 
</div> 

답변

1

또한 검색 기능에서 return false;보십시오. false를 반환하면 기본 이벤트가 요소에서 트리거되지 않습니다.

+0

것은 그냥 테스트가 시도 않았다

이 방법은 쉽게 대신 사업부

JQuery와 템플릿으로 웹 페이지를 펌프 노력의 HTML을 생성 할 수 있도록한다 alert ('test')를 울리면 jQuery가 내 양식 ID를 찾지 못하는 것처럼 보입니다. 내 레일 애플 리케이션에서 : id => "search"와 함께 form_tag를 지정합니다. 내 양식 (실제로는 텍스트 필드)에 제출 버튼이 없습니다 ... 사용하려면 .submit이 필요합니까? – thedeepfield

+0

'# search'가 '' 태그를 식별하면 submit()이 작동하지 않으면'click()'에 바인드해야합니다. 'submit()'은 '

' 태그에 대해서만 작동합니다. 알고 있다면 – sbeam

+0

sbeam이 옳습니다. 검색 양식을 제출하려면 양식의 ID를 변경하거나 $ ("input # search"). parents ("form")를 사용할 수 있습니다. –

0

첫 번째 예에서는 href 요소가있는 앵커에 이벤트를 바인딩하여 어디에서 링크를 가져올 지 알 수 있습니다.

두 번째로 링크에 적용된 내용을 복사하여 붙여 넣은 것처럼 보입니다. 폼이 처리되는 곳 (폼의 동작)과 폼 데이터로 전달되는 내용을 알아야합니다. JQuery와에 다음과 같이 이루어집니다 : 내가 RoR에 매우 익숙하지 않다

$(function(){ 
    $("#search").submit(function(){ 
     var queryString = $(this).serialize(); //gets the values in your form 
     var url = $(this).attr("action"); //your action url 
     $("#pages").load(url+"?"+queryString).fadeIn('slow'); 
     return false; //this prevents your form from doing its default behavior. 
    }); 
}); 

(나는 #search 있으리라 믿고있어하면 검색 양식의 ID입니다)하지만, JQuery와 고체해야한다 :

희망이 도움이됩니다!

+0

답장을 보내 주셔서 감사합니다. 예 복사 및 붙여 넣기입니다.나는 레일이 모든 배경 물건을 다룰 것이라고 생각했다. 그리고 나는 그 레일이 div로 빠져 나가는 HTML을 리다이렉트 할 수있다. – thedeepfield

0

나는 지금 당신에게 RoR 예제를 줄 수 없지만 그 대답은 JQuery에 관한 것입니다.

기본적으로 나는 ajax 요청으로 검색 결과를 얻고 jquery Templates 나 Mustache와 같은 템플릿 시스템으로 그 결과를 보여줍니다. 레일에 대한 http://api.jquery.com/category/plugins/templates/ 콧수염 : https://github.com/adamsalter/mustache-rails

+0

고마워, 고맙다. "템플릿"이 무엇인지 궁금해서. – thedeepfield