2010-04-19 156 views
0

我試圖根據另一個輸入字段的值自動填充文本字段。目前正試圖做到這一點使用的observe_field助手這樣的:根據另一個文本字段自動填充文本字段

<%= observe_field(
     :account_name, 
     :function => "alert('Name changed!')", 
     :on => 'keyup' 
    ) %> 

<% form_for(@account, :html => { :id => 'theform' }) do |f| %> 
    <label for="accountname"> Account name </label> 
    <%= form.text_field :name, :tabindex => '1' %> 
    <label for="subdomain"> Subdomain </label> 
    <%= form.text_field :subdomain, :tabindex => '2' %> 
<% end %> 

當用戶在ACCOUNT_NAME text_field輸入文本,我想複製轉換成一個子域(downcase和加入「 - 」)和填充子域文本域。

但是,在這個過程中收到此錯誤:

element is null 
    var method = element.tagName.toLowerCase(); protot...9227640 (line 3588) 

確切位置在哪裏我要去錯在這裏?還是有更好的方法來做到這一點?

+0

是你發佈的是真實生產,你張貼的錯誤的實際代碼的代碼?我不明白爲什麼它會試圖「toLowerCase()」,如果是的話。 – 2010-04-19 07:05:41

+1

是的。這是實際的代碼! – 2010-04-19 07:08:55

回答

0

將您的「observe_field」放入表單標籤中,然後重試。

EDITED

您的observe_field需要在它觀察的事物之後。

希望幫助:)

對於前: -

<% form_for(@account, :html => { :id => 'theform' }) do |f| %> 
    <label for="accountname"> Account name </label> 
    <%= form.text_field :name, :tabindex => '1' %> 


<%= observe_field(
     :account_name, 
     :function => "alert('Name changed!')", 
     :on => 'keyup' 
    ) %> 
    <label for="subdomain"> Subdomain </label> 
    <%= form.text_field :subdomain, :tabindex => '2' %> 
<% end %> 
+0

沒有幫助。拋出同樣的錯誤! – 2010-04-19 07:12:59

+0

請檢查我的EDITED答案。 – Salil 2010-04-19 07:34:10

+0

很酷。作品。謝謝。 – 2010-04-19 07:39:49

相關問題