2011-02-28 5 views
1

jQuery를 사용하여 javascript 변경 이벤트가 바인딩 된 html select 요소가 있습니다. 변경이 발생하면 선택한 옵션에 따라 몇 가지 다른 이벤트 중 하나가 발생할 수 있습니다. 초기 호출은 ajax를 통해 로직이 처리되는 레일 컨트롤러로 호출됩니다. 세 가지의Rails with jQuery - 내 페이지가 업데이트되지 않는 이유는 무엇입니까?

하나는 여기에서 가능합니다 :

  1. 일부 페이지 요소는
  2. 일부 페이지 요소는
  3. 추가 페이지 요소가 어떤 이유로

을 추가 활성화되어 사용할 수 없습니다, 나는 # 3 작업을 얻을 수 없습니다! Firebug는 올바른 요청 및 응답 헤더를 보여 주며 서버가 템플릿이 성공적으로 렌더링되고 있지만 아무것도 화면에 표시되지 않는다고 알려줍니다. 요소 ID가 단순한 렌더링을 시도했지만 여전히 운이 없다는 것을 하드 코딩하기까지했습니다.

여기 내 RJS 파일입니다 :

# IF A BUTTON DOES NOT ALREADY EXIST 
page << "if($('<%= @button_id.to_s %>').length < 1){" 

    # GENERATE THE ID OF THE DIV ELEMENT THAT I NEED TO ADD ELEMENTS AFTER 
    field_type_selector = '#q_'[email protected]_id.to_s+'_field_type_div'; 

    # AFTER THE DIV HOLDING THE SELECT ELEMENT, RENDER THE PARTIAL THAT ADDS SOME OPTIONS AND A BUTTON 
    page[field_type_selector].after(render(:partial=>'question_builder/add_option_button_during_edit')) 

# IF THE BUTTON IS ALREADY THERE 
page << "}else{" 

    # ENABLE THE ELEMENTS THAT WERE PREVIOUSLY DISABLED 
    page[@choices_div + " :input"].removeAttr('disabled') 
    page[@choices_div].removeClass('disabled') 
page << "}"` 

나는 등 간단한 "Hello World」의 파셜을 렌더링 요소 ID를 하드 코딩 시도하고 문제가 따른 위치를 알아낼 수 없습니다. 그 동안 콘솔을 사용하여 $ ('# element_id'). ("
Hello, world.
)

등의 요소를이 섹션에 매우 쉽게 추가 할 수 있습니다. 그 밖의 오류는 방화 광 콘솔 및 서버 외에도보고 될 수 있습니다 ?. 내가 난처한 상황에 빠진거야 터미널 창

  • 크리스
+0

인터넷 탭의 방화 찌그러움에서 XHR 요청을보고 서버가 무엇을 반환하는지 확인하십시오. – macarthy

답변

2

이 문제에 대한 해결책은 분명 아니었지만, 여기있다 : 나는 따옴표 안에 전체 ERB 블록을 배치했다

$("#field_id").after("<%= escape_javascript(render :partial=>'folder/myPartial') %>"); 

참고!

0

은 좋은 경험으로는() 메소드

렌더링 주위 escape_javascript 사용하는 그래서 볼 수 있었다 :

page[field_type_selector].after(escape_javascript(render(:partial=>'question_builder/add_option_button_during_edit'))) 
+0

귀하의 의견을 모두 주셔서 감사합니다. 나는 escape_javascript 함수를 통합하려고 시도했지만 응답 헤더에서 오류 관련 메시지를 찾았지만 여전히 운이 없다. – ChrisOnRails

+0

페이지 [field_type_selector] .after 부분에 대해 궁금합니다. 결코 사용하기 전에 ...하지만 아마도 Jquery.after 메소드를 사용하기 위해 직접 js를 작성하려고 시도 할 것입니다. [무언가] 아마도 << "$ (# {field_type_selector}). # {escape (render (etc))})) " – m4risU

관련 문제