2009-11-13 3 views
1

오류 메시지에 Scriptaculous 효과를 사용하고 싶습니다.오류 메시지에 Scriptaculous 효과를 사용하는 방법

<% form_for(@page) do |f| %> 
    <%= f.label :name %> 
    <%= f.text_field :name %> 
    <%= f.error_message_on "name" %> 

    <%= f.label :content %> 
    <%= f.text_field :content %> 
    <%= f.error_message_on "content" %> 

    <%= f.submit 'Create' %> 
<% end %> 

첫 번째 아이디어는 오류 메시지를 div 태그에 넣고 컨트롤러에서 page.visual_effect를 사용하는 것입니다. 하지만 영향을받을 올바른 div를 선택하는 방법을 모르겠습니다.

일부 조건을보기에 넣고 거기에서 전화해야합니까? 그건 그렇고 어떻게 해야할지 모르겠다. 우리가 뭔가를 할 수 없어 f.error_message_on "name", :visual_effect => ... 어떤 도움을 주시면 감사하겠습니다.

답변

1

을 하지만보기에서 이렇게 할 수 있습니다.

<%= f.error_message_on "name", 
     :css_class => "inputError" %> 

할일이 많습니다. 그것. 컨트롤러가 rjs를 반환하는 것이 한 가지 방법입니다. 눈에 거슬리지 않고 모범 사례로 간주하려면 페이지가로드 될 때 scriptaculous 메서드를 실행하는 javascript 파일을 포함해야합니다. 나는 눈에 거슬리지 자바 스크립트에 대한 낮은 프로 라이브러리를 사용합니다.

레이아웃 파일 :

<%= javascript_include_tag :defaults, ‘lowpro’, 'form_behaviors.js' %> 

javascript_file_for_form_actions.js :

Event.addBehavior({ 
    '.inputError' : function() { 
    this.hide(); 
    this.blindUp(); 
    } 
}); 

당신은 또한 조건부 content_for를 사용하여 자바 스크립트 파일을로드하고 레이아웃 파일을 변경할 수 있습니다 여기 내 제안이다.

보기 파일 : 레이아웃 파일에

<% content_for(:javascript) do %> <%= javascript_include_tag “form_behaviors” %> 
<% end %> 

어딘가에 :

<% yield :javascript %> 

당신은 당신을 위해뿐만 아니라 lowpro 포함하는 unobtrusive plugin를 얻을 수 있습니다. 정보 더를 위해 Peepcode에는 lowpro에 관하여 좋은 pdf 및 javascript에 몇몇 좋은 screencasts가있다.

+0

어쩌면 질질 마냥하지만 "javascript_file_for_form_actions.js"는 무엇인가요? 분명히 그것은 파일입니다. 분명히 그것은 .js 확장으로 인해 javascript입니다. 왜 그렇게 반복합니까? "form_actions.js"는 어떨까요? – ScottJ

+0

방금 ​​설명 했으니까요. 주석을 사용하기보다는. 나는 실제로 그 이름을 말하지 않을 것이다. – coreypurcell

+0

그리고 form_behaviors.js에 실제로 편집 된 것으로되어 있는데, content_for 부분에 있습니다. 그래서 지금 편집하겠습니다. – coreypurcell

0

그냥과 같은 식별 요소에 오류 메시지를 넣어 :에서 다음

<div id="bob">error messages here</div> 

당신의 당신은 같은 것을 할 수있는 자바 스크립트 : 당신은 div의의 포장 (가) 오른쪽 궤도에

$('bob').blindUp(); 
관련 문제