рельсы и прототип вопрос - PullRequest
0 голосов
/ 06 ноября 2010

Я пытаюсь использовать обратный вызов afterfinish, чтобы установить фокус на текстовое поле после эффекта прототипа, и я не понимаю этот JavaScript правильно.

Может ли кто-нибудь мне помочь?

<%= link_to_function "Enter Data" do |page |
      page.visual_effect :appear , 'section1', 
          :afterFinish => "document.getElementById('name').focus()"
    end %>

<div id="section1" style="display:none;">
         <%= label_tag 'Your Name' %>
        <%= text_field_tag 'name', '', :size => 20 %>
</div>

Ответы [ 2 ]

1 голос
/ 07 ноября 2010

Вот что у меня работает

page.visual_effect :appear, 'section1', :afterFinish => "function(){$('name').focus()}"

Это ограничение для rjs, при котором вы не можете вставлять методы-прототипы, как предлагает Джордан, вместо этого вы должны использовать raw js.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 06 ноября 2010

Если вы хотите использовать метод Prototype focus(), вы должны сделать это так:

<%= link_to_function "Enter Data" do |page |
      page.visual_effect :appear , 'section1', 
          :afterFinish => "Form.Element.focus('name')"
    end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...