1
如果我们使用form_for
进行记录,表单标签内的所有输入标签将自动包含一个属性id
,其值为id="post_3_title"
,id="post_3_content"
。如何从form_for中的记录获取标签ID?
在我的情况下,我想要获得这些名称来动态创建JavaScript代码。我想知道有没有办法做到这一点。有任何想法吗?
感谢您的帮助。
如果我们使用form_for
进行记录,表单标签内的所有输入标签将自动包含一个属性id
,其值为id="post_3_title"
,id="post_3_content"
。如何从form_for中的记录获取标签ID?
在我的情况下,我想要获得这些名称来动态创建JavaScript代码。我想知道有没有办法做到这一点。有任何想法吗?
感谢您的帮助。
我在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
看来我们可以很好地利用它们,但是它们都是私有方法。我认为另一个解决方案是实施这样的辅助方法。
你可以给该字段定制id并且可以将它用于你的javascript代码 – 2013-02-28 05:14:15
@DevR谢谢,你的解决方案可以工作,这就是我以简单形式使用的方式,但是在嵌套形式中,我认为它可以是小糟糕。 – 2013-02-28 06:21:58