MagicSuggest:获取模糊选择的长度

时间:2017-03-02 22:07:44

标签: javascript jquery magicsuggest

我正在使用MagicSuggest,我需要在模糊事件中获取选择的长度。如果我通过ENTER键添加一个新选项,但如果我从列表中选择一个现有选择,则代码工作正常。

使用案例

  1. 如果用户通过ENTER键选择建议,长度= 1 - 正确
  2. 如果用户通过鼠标点击选择建议,长度= 0 - 不正确,应为1
  3. 的jsfiddle https://jsfiddle.net/a1ejqtae/7/

    HTML

    <form action="">
      <label for="keyword">Keywords</label>
      <input type="text" id="keywords">
    </form>
    

    JS

    $('form input').on('blur', function(){
    
    var selectionLength = $('form .ms-sel-item').length;
    $('.selection-name').text(selectionLength);
    console.log('Selection is ' + selectionLength);
    
    if( selectionLength > 0 ){
    console.log('Selection is greater than 0');
    }
    
    });
    

    PS 有谁知道这个插件发生了什么,github页面仍在运行,但所有文档和示例的网站都已关闭 - http://nicolasbize.com/magicsuggest/doc.html。谢天谢地回来机器。

2 个答案:

答案 0 :(得分:1)

我在你的jsfiddle中测试了下面的代码并且工作正常:

var labelName = $('label').text();
console.log('label = ' + labelName);

$('#keywords').magicSuggest({
  hideTrigger: true,
  placeholder: 'Start typing for keyword suggestions',
  useZebraStyle: true,
  data: ["banshee", "fargo", "house", "csi", "ncis"],
  method: 'get'
});

var update = function (){
    var selectionLength = $('form .ms-sel-item').length;
  $('.selection-name').text(selectionLength);
  console.log('Selection is ' + selectionLength);
}

$('form input').on('blur', function(){

 update();

});
$(window).on('keyup', function(e){
 if(e.keyCode === 13){

  update();
  $(this).blur();
 }

});
$(window).on('click', function(e){
  update();
  $(this).blur();
});

如果有任何问题,请告诉我。我希望它有所帮助。

答案 1 :(得分:1)

$(ms).on('blur', function(c,e){
var selecteion = e.getSelection();
if(selecteion[0]){ console.log(selecteion[0]);
}
});