【问题标题】:Rails: Resetting form fields with page refreshRails:使用页面刷新重置表单字段
【发布时间】:2010-07-19 20:12:50
【问题描述】:

我有一个 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

结束

我需要一种方法来保留动态文本信息或重置下拉菜单。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    您需要关闭“自动完成”选项 - 这会告诉浏览器您不希望该字段自动完成。

    这里有一个例子:http://mspeight.blogspot.com/2007/06/disable-browsers-autocomplete-on-rails.html

    您也可以执行相同的操作,但只需关闭特定字段的自动完成功能。

    换句话说,表单没有得到刷新,因为浏览器试图通过输入客户最后使用的数据来提供帮助。您需要告诉浏览器停止提供帮助。您已经提供了正确的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多