使用jQuery-TokenInput预先填充的数据更改时出现意外结果

时间:2013-01-06 06:31:11

标签: ruby-on-rails ruby-on-rails-3 jquery-ui jquery-tokeninput

我通过jQuery-TokenInput预先填充的数据集更改获得了意外结果 我已关注Railscasts - Token Fields并使用Railscasts - Token Fields Revised source code acc更新了必要的代码。到最新的Rails版本。

我处理令牌搜索查询的coffeescript代码是:

jQuery ->
$('#user_tracker_ids').tokenInput '/trackers.json'
prePopulate: $('#user_tracker_ids').data('load')
minChars: 3
hintText: "Type in name"
preventDuplicates : true

我的奇怪结果是:

  1. 案例1:[初始案例] [正确]
    当令牌字段为空时,即没有预先填充的数据,我输入任何号码。对于令牌,我在服务器端操作中获取与令牌相关联的ID,这是正确的。

  2. 案例2:[结束案例] [正确]
    当我删除之前输入的所有ID时,即删除所有预先填充的数据,我得到0个ID,这也是正确的。

  3. 案例3 :[ 失败案例 ] [错误]
    当令牌输入中已有值,并且我更新它们时,例如添加更多令牌,删除一些现有令牌,我只获得当前添加的令牌的ID。编辑会话。对query-tokenInput中的预填充数据所做的更改不会发送到服务器端操作。
  4. 我确定我在这里错过了一些细节设置,但我找不到并修复它。
    如果您需要更多信息。找到问题,请告诉我。

2 个答案:

答案 0 :(得分:2)

使用此

                $(elementId).tokenInput("",
                {
                    prePopulate:JSON.parse(YourJsonFormatStringHere)
                });

答案 1 :(得分:0)

这是我的错误,确实是一个愚蠢的 prePopulate: $('#user_tracker_ids').data('load')

prePopulate调用的输入中,发送的数据不完整。我只是传递了对象的名称字段,并且没有通过 id 字段。

因此,令牌输入能够正确显示预先填充数据的名称,但是没有反映任何对它的更改,正如我在上面的问题中所提到的那样。