2010-11-05 101 views
0

我试图使用afterfinish回调在原型的效果后设置文本字段的焦点,我没有得到这个JavaScript的权利。rails和原型问题

有人可以帮助我吗?

<%= 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> 

回答

0

如果你想使用的原型方法focus()你应该做这样的:

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

谢谢!但我得到这个错误 this.options [eventName]不是函数 任何想法为什么?感谢您的帮助 – user16455 2010-11-05 23:43:02

+0

声明afterFinish的值如下: afterFinish:callToYourFunction 而不是: afterFinish:callToYourFunction() – Sander 2012-04-24 09:23:17

1

这对我来说

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

什么作品这是RJS其中的限制你不能像乔丹所建议的那样插入原型方法,相反你必须把原始的js。

希望这可以帮助别人。