2010-02-22 3 views
2

ajax/js를 통해 페이지 내용을 업데이트하는 원격 메소드를 호출하려고합니다. 내가 너무 피곤하거나 haml이 다음 코드를 올바르게 구문 분석하지 않아서 프로토 타입을 통해 쿼리 필드의 값을 보낼 수 없습니다. 어떤 아이디어?haml 및 javascript가 필요하지 않으십니까? (레일 : form_remote_tag 및 : with 매개 변수)

- form_remote_tag(:url => {:controller => "search", :action => "line"},:with => "'query=' + $('query').value") do 
    %input{:type => 'text', :id => 'query'} 
    %input{:type => 'submit', :value => 'Search'} 

감사합니다. t

답변

1

는 대신

나 자신을 HAML에 새로 온 사람
- form_remote_tag 

= form_remote_tag 

을 시도했지만 난 당신이 양식 태그가 필요합니다 인상이었다 실제로 실행되는 것이 아니라 실제로 생성되어야합니다 ...

+1

'- form_remote_tag'는 정상적으로 작동합니다. –

+0

@Jonathan Thanks! Duly는 ... –

+0

'form_for' (및 다른 뷰 헬퍼)는 html을 버퍼에 직접 추가하므로'='를 사용하여 직접 삽입 할 필요가 없습니다. 그렇게하면 두 개의 '

'태그가 표시됩니다. –

1

:with을 t 옵션의 해시.

- form_remote_tag({ :url => {:controller => "search", :action => "line"}, :with => "'query=' + $('query').value" }) do 

그래도 작동하지 않으면 문제를 디버그하십시오. 생성 된 HTML을보십시오. ID가 query 인 텍스트 필드가 해당 ID가있는 페이지의 유일한 요소입니까? js 코드가 맞습니까? Firebug 콘솔을 사용하여 $('query').value이 텍스트 필드에 입력 한 내용을 반환하는지 확인하십시오.

여전히 고착 되었나요? 우리가 더 잘 도울 수 있도록 생성 된 html을 질문에 추가하십시오.

편집 :query 입력 태그에는 name 속성이 없습니다. 이름이 없으면 javascript 도우미 코드는 양식 필드를 직렬화 할 때 해당 필드를 건너 뜁니다. 또한 :with 코드가 필요하지 않습니다.

%input{:type => 'text', :id => 'query', :name => 'query'} 
+0

안녕하세요 jonathan 님, 답변 해 주셔서 감사합니다. 생성 된 html은 "with"를 완전히 잃어 버리는 것처럼 보입니다. http://pastie.org/836556 (이것은 제안 된 구문과 함께 출력됩니다) - haml이 문제 일 수 있다고 생각합니다 ... haml (2.2. 17) –

+0

그리고 haml 2.2.20으로 업데이트되었고 문제는 여전히 존재합니다 ... –

+0

문제는 Haml과 관련이 없습니다. 입력 태그가 있습니다. 내 편집을 참조하십시오. –