加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:通过页面刷新重置表单字段

发布时间:2020-12-17 03:12:03 所属栏目:百科 来源:网络整理
导读:我有一个Rails表单,它有一个observe_field,当下拉列表发生变化时会执行ajax请求. ajax导致表单被重新呈现(表单是部分的),带有一个额外的参数,导致页面上的某些文本发生变化.一切正常,但当我刷新页面(我正在运行firefox)时,文本被重置,下拉列表不会更改其值.
我有一个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

结束

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

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读