Jquery 自动更新所选字段选项
在Rails中,我的Dish页面上有一个表单,其中有一个名为sidedisks的多选字段 如果用户从另一个浏览器窗口添加了另一个配菜,我希望选择我的配菜字段的选项,以便在不重新加载页面的情况下自动更新 我查看了所选网站上的内容,但我不知道这是否是我正在寻找的和/或我是否正确理解它 目前,我的displays.js.coffee如下所示:Jquery 自动更新所选字段选项,jquery,ruby-on-rails,forms,jquery-chosen,Jquery,Ruby On Rails,Forms,Jquery Chosen,在Rails中,我的Dish页面上有一个表单,其中有一个名为sidedisks的多选字段 如果用户从另一个浏览器窗口添加了另一个配菜,我希望选择我的配菜字段的选项,以便在不重新加载页面的情况下自动更新 我查看了所选网站上的内容,但我不知道这是否是我正在寻找的和/或我是否正确理解它 目前,我的displays.js.coffee如下所示: jQuery -> $(".chzn-side-dish").chosen() $(".chzn-side-dish").trigger "lis
jQuery ->
$(".chzn-side-dish").chosen()
$(".chzn-side-dish").trigger "liszt:updated"
但很明显,这并没有达到目的。我的理解是.trigger将定期刷新配菜列表,并从配菜表中获取任何新的添加或删除
而菜肴页面上的表格遵循以下惯例:
= form_for @dish, :html => { :class => "form-horizontal" } do |f|
...
%fieldset
.control-group
=f.label :side_dish_ids, "Side Dish(es)", :class => 'control-label'
.controls
=f.collection_select :side_dish_ids, SideDish.order(:name), :id, :name, {}, {multiple: true, :class => 'chzn-side-dish'}
PS-我已经看了一些问题,但无法全部解决。再一次,我不确定我是否理解。触发器的用途。。。正确。您需要手动处理,没有简单的方法。您可以进行轮询以检查是否有更改,然后重新创建列表,也可以使用WebSocket来避免轮询。如果您采用这种方法,有一种服务可以帮助您使用WebSocket 从可用性的角度来看,我会非常小心,你不想在用户实际使用列表时重新加载列表,或者如果他们已经选择了某个对象时重新加载列表。jQuery的.trigger是一种编程方式,用于模拟通常在响应用户交互时发生的浏览器事件,例如“单击”或“鼠标悬停”。它还可以与没有用户交互等效项的自定义事件一起使用。