2013-02-28 66 views
1

如果我們使用form_for進行記錄,表單標籤內的所有輸入標籤將自動包含一個屬性id,其值爲id="post_3_title",id="post_3_content"如何從form_for中的記錄獲取標籤ID?

在我的情況下,我想要獲得這些名稱來動態創建JavaScript代碼。我想知道有沒有辦法做到這一點。有任何想法嗎?

感謝您的幫助。

+0

你可以給該字段定製id並且可以將它用於你的javascript代碼 – 2013-02-28 05:14:15

+0

@DevR謝謝,你的解決方案可以工作,這就是我以簡單形式使用的方式,但是在嵌套形式中,我認爲它可以是小糟糕。 – 2013-02-28 06:21:58

回答

1

我在actionpack-3.2.12/lib/action_view/helpers/form_helper.rb:1218找到了源代碼。

def tag_name_with_index(index) 
     "#{@object_name}[#{index}][#{sanitized_method_name}]" 
    end 

    def tag_id 
     "#{sanitized_object_name}_#{sanitized_method_name}" 
    end 

    def tag_id_with_index(index) 
     "#{sanitized_object_name}_#{index}_#{sanitized_method_name}" 
    end 

    def sanitized_object_name 
     @sanitized_object_name ||= @object_name.gsub(/\]\[|[^-a-zA-Z0-9:.]/, "_").sub(/_$/, "") 
    end 

    def sanitized_method_name 
     @sanitized_method_name ||= @method_name.sub(/\?$/,"") 
    end 

看來我們可以很好地利用它們,但是它們都是私有方法。我認爲另一個解決方案是實施這樣的輔助方法。