【问题标题】:Twitter bootstrap tokenfield cancel .on('beforeCreateToken')Twitter 引导令牌字段取消 .on('beforeCreateToken')
【发布时间】:2014-02-24 00:53:16
【问题描述】:

Twitter 引导令牌字段

如果检测到无效输入,有没有办法取消在 .on('beforeCreateToken') 中创建令牌?

【问题讨论】:

    标签: jquery twitter-bootstrap bootstrap-tokenfield


    【解决方案1】:

    是的。我假设你正在使用这个库 -> http://sliptree.github.io/bootstrap-tokenfield/ ??

    只需在beforeCreateToken 处理程序中重置令牌,如果要插入的令牌包含在排除列表中:

    var exclusionList = ['a','b','c'];
    
    $('#tokenfield').on('beforeCreateToken', function(e) {
      var token = e.token.value;
      if (exclusionList.indexOf(token)>-1) {
        e.token=false;
      } 
    });
    

    如果为空,则不会插入令牌(很明显:)


    来自源,关于最新开发版本 v0.11.0 (https://github.com/sliptree/bootstrap-tokenfield/blob/master/js/bootstrap-tokenfield.js) 中的第 176-178 行:

      this.$element.trigger( beforeCreateEvent )
    
      if (!beforeCreateEvent.token) return
    

    createToken()内部触发beforeCreateToken,如果将e.token设置为false或空,则退出函数并

    var token = $('<div class="token" />')
                .attr('data-value', value)
                .append('<span class="token-label" />')
                .append('<a href="#" class="close" tabindex="-1">&times;</a>')
    

    永远不会到达。所以这实际上是取消创建的thé 方式。

    【讨论】:

    • 谢谢!这样就创建了一个空令牌。我想中止创造。
    • 没有。为空时不会创建任何内容。或者,将 e.token 设置为 false (因为我已经更新了答案) - 使用最新的可下载版本。自行检查代码,如果将令牌设置为 false(或为空),则返回取消创建。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多