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