Aud*_*die 5 ruby ruby-on-rails
我有一个Rails表单,它有一个observe_field,当下拉列表发生变化时会执行ajax请求.ajax导致表单被重新呈现(表单是部分的),带有一个额外的参数,导致页面上的某些文本发生变化.一切正常,但当我刷新页面(我正在运行firefox)时,文本被重置,下拉列表不会更改其值.因此,我最终得到的选择值与动态文本不对应.
我已经尝试设置下拉列表的默认选择值,但由于某种原因,firefox不会通过页面刷新更改该值.
这是视图中下拉列表的代码:
<%= select_tag :category, options_from_collection_for_select(@categories, :letter, :name, @letter) %>
动态设置@letter并控制页面上的动态文本.
这是在页面刷新时呈现的操作:
def new
@part = Part.new
@letter = params[:letter] || "A"
@part.cpn = Part.find_next_cpn(@letter)
@categories = PartCategory.find(:all)
respond_to do |format|
format.js
format.html
end
Run Code Online (Sandbox Code Playgroud)
end
<%= select_tag :category, options_from_collection_for_select(@categories, :letter, :name, @letter) %>
def new
@part = Part.new
@letter = params[:letter] || "A"
@part.cpn = Part.find_next_cpn(@letter)
@categories = PartCategory.find(:all)
respond_to do |format|
format.js
format.html
end
Run Code Online (Sandbox Code Playgroud)
end
我需要一种方法来保留动态文本信息或重置下拉菜单.
您需要关闭"自动完成"选项 - 这会告诉浏览器您不希望该字段自动完成.
这里有一个例子:http://mspeight.blogspot.com/2007/06/disable-browsers-autocomplete-on-rails.html
您也可以执行相同的操作,但只需关闭特定字段的自动完成功能.
换句话说,表单没有得到刷新,因为浏览器试图通过输入客户使用的最后数据来提供帮助.您需要告诉浏览器停止尝试提供帮助.您已经提供了正确的数据.