Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 自动更新所选字段选项_Jquery_Ruby On Rails_Forms_Jquery Chosen - Fatal编程技术网

Jquery 自动更新所选字段选项

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

在Rails中,我的Dish页面上有一个表单,其中有一个名为sidedisks的多选字段

如果用户从另一个浏览器窗口添加了另一个配菜,我希望选择我的配菜字段的选项,以便在不重新加载页面的情况下自动更新

我查看了所选网站上的内容,但我不知道这是否是我正在寻找的和/或我是否正确理解它

目前,我的displays.js.coffee如下所示:

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是一种编程方式,用于模拟通常在响应用户交互时发生的浏览器事件,例如“单击”或“鼠标悬停”。它还可以与没有用户交互等效项的自定义事件一起使用。