Jquery 可搜索选择大小为10的相似项

Jquery 可搜索选择大小为10的相似项,jquery,html,Jquery,Html,我看过JQuery,它看起来不错。我寻找类似的东西,它显示固定数量的条目,比如说10个条目,并且不关闭 我一直在尝试打开(“Selected:ready”,sendTriggerChosenOpen),它会启动,但只要你点击弹出框,它就会关闭。在页面加载时,输入字段处于活动状态是非常重要的 显然,所选的用于自隐藏列表 是否有一种外观和感觉类似的替代方案,只是具有类似于多选的行为,并且具有可在页面加载时激活的输入字段 带有集成搜索栏的下拉菜单也可以完成这项工作,它只需光学集成(我不想模仿内置css

我看过JQuery,它看起来不错。我寻找类似的东西,它显示固定数量的条目,比如说10个条目,并且不关闭

我一直在尝试打开(“Selected:ready”,sendTriggerChosenOpen),它会启动,但只要你点击弹出框,它就会关闭。在页面加载时,输入字段处于活动状态是非常重要的

显然,所选的
用于自隐藏列表

是否有一种外观和感觉类似的替代方案,只是具有类似于多选的行为,并且具有可在页面加载时激活的输入字段


带有集成搜索栏的下拉菜单也可以完成这项工作,它只需光学集成(我不想模仿内置css)。

编辑

好的,如果不进行大量更改,使用select2或Selected就无法实现您想要的功能

使用带有代码的示例来检查
输入中插入的文本
,您可以像这样过滤选项

$(function() {
    $('#search').on('keyup', function() {
        $('#term').find('option:not(:contains(' + this.value + '))').hide();
        $('#term').find('option:contains(' + this.value + ')').show();
    });
});
工作小提琴:

编辑2

并检查按键是否为
enter
以选择第一个
选项
,然后将注意力集中在
选择上

if(e.keyCode==13){
    $('#term').focus();
    $("#term").val($("#term option:first").val());
}else{
    /* what we already had */
}
新小提琴:

旧答案

我想这会满足你的要求(如果我没弄错的话)


您可以选择多个值,并在其他选项中包括搜索栏。

编辑

好的,如果不进行大量更改,使用select2或Selected就无法实现您想要的功能

使用带有代码的示例来检查
输入中插入的文本
,您可以像这样过滤选项

$(function() {
    $('#search').on('keyup', function() {
        $('#term').find('option:not(:contains(' + this.value + '))').hide();
        $('#term').find('option:contains(' + this.value + ')').show();
    });
});
工作小提琴:

编辑2

并检查按键是否为
enter
以选择第一个
选项
,然后将注意力集中在
选择上

if(e.keyCode==13){
    $('#term').focus();
    $("#term").val($("#term option:first").val());
}else{
    /* what we already had */
}
新小提琴:

旧答案

我想这会满足你的要求(如果我没弄错的话)


您可以选择多个值,并在其他选项中包括搜索栏。

编辑

好的,如果不进行大量更改,使用select2或Selected就无法实现您想要的功能

使用带有代码的示例来检查
输入中插入的文本
,您可以像这样过滤选项

$(function() {
    $('#search').on('keyup', function() {
        $('#term').find('option:not(:contains(' + this.value + '))').hide();
        $('#term').find('option:contains(' + this.value + ')').show();
    });
});
工作小提琴:

编辑2

并检查按键是否为
enter
以选择第一个
选项
,然后将注意力集中在
选择上

if(e.keyCode==13){
    $('#term').focus();
    $("#term").val($("#term option:first").val());
}else{
    /* what we already had */
}
新小提琴:

旧答案

我想这会满足你的要求(如果我没弄错的话)


您可以选择多个值,并在其他选项中包括搜索栏。

编辑

好的,如果不进行大量更改,使用select2或Selected就无法实现您想要的功能

使用带有代码的示例来检查
输入中插入的文本
,您可以像这样过滤选项

$(function() {
    $('#search').on('keyup', function() {
        $('#term').find('option:not(:contains(' + this.value + '))').hide();
        $('#term').find('option:contains(' + this.value + ')').show();
    });
});
工作小提琴:

编辑2

并检查按键是否为
enter
以选择第一个
选项
,然后将注意力集中在
选择上

if(e.keyCode==13){
    $('#term').focus();
    $("#term").val($("#term option:first").val());
}else{
    /* what we already had */
}
新小提琴:

旧答案

我想这会满足你的要求(如果我没弄错的话)


您可以选择多个值,并在其他选项中包括搜索栏。

如果您愿意使用select2,这很简单,归结起来是:

var selector = $("#term");

selector.select2();
selector.on("select2:close", function (e) {
    selector.select2('open');
});

selector.select2('open');

如果您愿意使用select2,这很简单,归结起来是:

var selector = $("#term");

selector.select2();
selector.on("select2:close", function (e) {
    selector.select2('open');
});

selector.select2('open');

如果您愿意使用select2,这很简单,归结起来是:

var selector = $("#term");

selector.select2();
selector.on("select2:close", function (e) {
    selector.select2('open');
});

selector.select2('open');

如果您愿意使用select2,这很简单,归结起来是:

var selector = $("#term");

selector.select2();
selector.on("select2:close", function (e) {
    selector.select2('open');
});

selector.select2('open');

我找到了一个解决方案,需要在Selected.js中进行一些编辑。
这个解决方案一点也不优雅,但不知何故它是有效的。只要有时间,我会通过添加
.toperman()
选项来改进它

首先打开selected.jquery.js并搜索
selected.prototype.close\u字段
。 因为我们不想关闭字段,所以不需要大部分函数。评论如下:

Chosen.prototype.close_field = function() {
 /*
  $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
  this.active_field = false;
  this.results_hide();
  this.container.removeClass("chosen-container-active"); */
  this.clear_backstroke(); 
  this.show_search_field_default();
  return this.search_field_scale();  
};
Chosen.prototype.results_hide = function() {
     /* if (this.results_showing) {
    this.result_clear_highlight();
    this.container.removeClass("chosen-with-drop");
    this.form_field_jq.trigger("chosen:hiding_dropdown", {
      chosen: this
    });
      }
      return this.results_showing = false; */
      this.results_show();
    };
下一个是选中的
。prototype.results\u hide
。这一个现在是完全无用的,但在许多地方从选择调用,所以我们不只是削减它,而是在这里做一点更换。如下更改功能:

Chosen.prototype.close_field = function() {
 /*
  $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
  this.active_field = false;
  this.results_hide();
  this.container.removeClass("chosen-container-active"); */
  this.clear_backstroke(); 
  this.show_search_field_default();
  return this.search_field_scale();  
};
Chosen.prototype.results_hide = function() {
     /* if (this.results_showing) {
    this.result_clear_highlight();
    this.container.removeClass("chosen-with-drop");
    this.form_field_jq.trigger("chosen:hiding_dropdown", {
      chosen: this
    });
      }
      return this.results_showing = false; */
      this.results_show();
    };
因此,我们现在没有隐藏结果,而是确保始终显示结果

提交时需要最后修改。如果用户按Enter键,下拉选择的当前值将不会重置。为了重置,他必须双击当前选择
搜索所选的
原型.keydown\u checker
。在该功能的开关盒内添加

this.result_select("");
案例13的正下方:
这是
输入的键代码

现在应该是这样的:

case 13:
      this.result_select(""); 
      if (this.results_showing) {
        evt.preventDefault();
      }
      break;

现在,您选择的选择将永远不会完全崩溃。您仍然可以通过单击项目或使用搜索栏筛选项目来选择项目。按enter键后,当前过滤器将被删除。
我希望这就是您要查找的内容。

请注意:这些修改将应用于您选择的所有选项

我找到了一个解决方案,需要在selected.js中进行一些编辑。
这个解决方案一点也不优雅,但不知何故它是有效的。只要有时间,我会通过添加
.toperman()
选项来改进它

首先打开selected.jquery.js并搜索
selected.prototype.close\u字段
。 因为我们不想关闭字段,所以不需要大部分函数。评论如下:

Chosen.prototype.close_field = function() {
 /*
  $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
  this.active_field = false;
  this.results_hide();
  this.container.removeClass("chosen-container-active"); */
  this.clear_backstroke(); 
  this.show_search_field_default();
  return this.search_field_scale();  
};
Chosen.prototype.results_hide = function() {
     /* if (this.results_showing) {
    this.result_clear_highlight();
    this.container.removeClass("chosen-with-drop");
    this.form_field_jq.trigger("chosen:hiding_dropdown", {
      chosen: this
    });
      }
      return this.results_showing = false; */
      this.results_show();
    };
下一个是选中的
。prototype.results\u hide
。T