【问题标题】:Any idea not to select the name that is already chosen in token input?有什么想法不要选择令牌输入中已经选择的名称吗?
【发布时间】:2012-08-22 15:48:21
【问题描述】:

有什么想法不选择在令牌输入中已经选择的名称吗?例如,首先我在搜索 m 时选择 mango。下次当我搜索 m Mango 时,不应显示芒果,因为已经选择了芒果。有什么想法吗?

 <%= f.text_field :plan_tokens, data: {load: @customer.plans} %>

我有这样的 js jQuery ->

 $('#customer_plan_tokens').tokenInput '/plans.json'
    theme: 'facebook'
    prePopulate: $('#customer_plan_tokens').data('load')

在哪里放置 preventDuplicates:true。我确实尝试过,但出现错误!

我从

学习这个

http://railscasts.com/episodes/258-token-fields

http://railscasts.com/episodes/258-token-fields-revised


【问题讨论】:

    标签: javascript ruby ruby-on-rails-3 coffeescript jquery-tokeninput


    【解决方案1】:

    当您在 JavaScript 中初始化 tokeninput 时,您可以添加 preventDuplicates: true,这将防止选择重复项,但它们仍会显示在结果中 (demo)。

    比如:

    $(...).tokenInput("url", { preventDuplicates: true, otherOptionsHere });
    

    如果您根本不希望它们显示,可能会为onResult 回调编写一些代码,检查字段的值并删除已经存在的值。

    编辑:既然你用的是CoffeeScript,那就试试

    $('#customer_plan_tokens').tokenInput '/plans.json'
       theme: 'facebook'
       prePopulate: $('#customer_plan_tokens').data('load')
       preventDuplicates: true
    

    【讨论】:

    • 此脚本阻止所有数据稍后添加。它只允许选择 1 个数据。例如,起初当我为 f 它给出面子时,化石。我选择面子。当我再次选择 f 时,它会显示 face,fossil 但当时它会阻止化石也被选中。
    • preventDuplicates: true 阻止所有下一个选择的数据来选择。
    • 我从来没有使用过tokeninput,所以我不完全确定,但由于演示工作正常,我猜它在你端的某个地方。你的 JSON 响应是什么样的?
    • 对不起,我不明白你的意思。你能详细描述一下我吗?
    • tokenInput 从/plans.json 加载要显示的数据,但是你得到的响应是什么样的?
    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    相关资源
    最近更新 更多