- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个多选 chzn-select-deselect 框。当我选择一个特定值时,我想一次选择多个值。我有以下 HTML:
<select id="filter_list_dropdwn" class="inp direct_value_opp fl" multiple="multiple" name="data[value1][]">
<option value="1" parent_id="0"> parent1</option>
<option value="2" parent_id="1"> child1 of parent1</option>
<option value="3" parent_id="1"> child2 of parent1</option>
<option value="4" parent_id="3"> child of child3</option>
</select>
如果我选择 parent1,那么它的 child 将自动被选中。工作脚本是这样的:
$('#filter_list_dropdwn option:not(:selected)').live('click', function () {
unselected = $(this);
var parent_id = $(unselected).attr("value");
$('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
$(this).prop('selected', false).click();
});
});
$('#filter_list_dropdwn option:selected').live('click', function () {
selected = $(this);
var parent_id = $(selected).attr("value");
$('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
$(this).prop('selected', true).click();
});
});
这是上述功能的 fiddle :http://jsfiddle.net/NEXv3/
现在,我想在 chzn-select-deselect
选项中应用相同的内容。所以,我修改了脚本如下:
$('#filter_list_dropdwn option:not(:selected)').live('click', function () {
unselected = $(this);
var parent_id = $(unselected).attr("value");
$('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
$(this).attr('selected', false).chosen();
});
});
$('#filter_list_dropdwn option:selected').live('click', function () {
selected = $(this);
var parent_id = $(selected).attr("value");
$('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
$(this).attr('selected', true).chosen();
});
});
但它并没有像预期的那样工作。谁能告诉我在 chzn-select-deselect
下拉菜单中应用相同的自动多选选项出了什么问题?
最佳答案
快速浏览 author website ,您会看到选择时会有以下事件:
$("#form_field").chosen().change( … );
要更新选择下拉列表,您必须执行以下操作:
$("#form_field").trigger("chosen:updated");
现在,您的代码必须从头开始重写:
$('#filter_list_dropdwn').chosen(); // to apply the plugin
$("#filter_list_dropdwn").chosen().change(function(e, option){
// when changing, option will contain {selected: "value"} or {deselected: "value"}
var selected = option.selected;
var deselected = option.deselected;
if (selected !== undefined) {
// if we have selected a new option
$('#filter_list_dropdwn option[data-parent_id=' + selected + ']').each(function () {
$(this).prop('selected', true);
});
} else if(deselected !== undefined) {
// if we have deselected an option
$('#filter_list_dropdwn option[data-parent_id=' + deselected + ']').each(function () {
$(this).prop('selected', false);
});
}
// redraw the "chosen select" when all changes have been made to the real one
$("#filter_list_dropdwn").trigger("chosen:updated");
});
编辑:
代码可以更短:
$("#filter_list_dropdwn").chosen().change(function(e, option){
var parent_id = option.selected !== undefined ? option.selected : option.deselected;
$('#filter_list_dropdwn option[data-parent_id=' + parent_id + ']').each(function () {
$(this).prop('selected', option.selected !== undefined ? true : false);
});
$("#filter_list_dropdwn").trigger("chosen:updated");
});
编辑#2:
递归实现:
关于javascript - 如何自动选择多选框chzn-select-deselect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22779132/
突出显示此网页上的一些文本,然后基本上单击文档上的任意位置。您的选择将会消失。 有没有办法在用户点击特定元素时通过 CSS 或 Javascript 阻止这种行为? 例如: var element =
我已经编写了一个 Django 自定义管理操作 ( https://docs.djangoproject.com/en/1.7/ref/contrib/admin/actions/ )。这种类型的东西
当我制作 JFrame 时,JFrame 顶部的内容会自动“选择”。 JFrame/JDialog 顶部的所有内容都将被“选择”,例如 JButton、JTextField,...如何在不使用鼠标单击
首先,我要感谢 Shree,他清理并提高了我以前的代码的性能 here 无论如何,我有一些代码可以让用户选择一个或多个物种(来自 selectizeInput)。该应用程序在 map 上向您显示物种分
使用JQGrid,我知道选择一行时的onSelectRow事件。 我想知道当您因为选择了另一行而取消选择一行时是否会发生事件。 谢谢 最佳答案 您仍然可以创建自定义事件: onSelectRow: f
我正在用 OrderDetailsArray 填充我的 tableView。然后在 DidSelect 上,我将值添加到 reorderArray。如何在点击 DidDeSelect 时从数组中删除值
我有一个页面执行 Ajax 请求,每秒替换一个 div。该 div 中也有超链接。 如果用户尝试单击其中一个超链接,它将起作用,但如果他们将光标移动到链接上,等待一秒钟而不移动光标,超链接将不再具有“
我正在将 Bootstrap 框架与 Bootstrap Select 一起使用插件。 这是一个常规的选择标签,不是多个,这是我使用的代码: 哪里get_food()函数简单地打印 带有
我正在寻找一种方法来检测何时取消选择 Google map 上的标记。我有一个滑动抽屉,在用户点击标记之前, handle 是不可见的,一旦标记被“取消选择”,我想让它再次不可见。我已尝试使用 mar
我有一个多选 chzn-select-deselect 框。当我选择一个特定值时,我想一次选择多个值。我有以下 HTML: parent1 child1 of par
有没有办法用 Excel VBA 取消选择单元格?我的情况是我有一个工作表双击事件,所以必须选择单元格才能运行宏。但这会在选定的单元格中留下一个闪烁的光标。 宏完成后如何取消选择单元格?我在谷歌上搜索
看起来,如果您从“已选择”列表中取消选择某个项目,那么您就无法改变主意并再次选择它。网站提供的“表单”示例中也很清楚: http://jsfiddle.net/awnry/QzjTs/ 如果取消选择项
我有多选下拉菜单。每当有选择或取消选择时,我都需要获取该值。我正在使用更改事件,但很难确定选择/取消选择了哪个选项。 最佳答案 //all options var all=[]; $('#multip
我需要在 Fabric.js 1.7.19 中禁用选定对象的取消选择。我试过: object.on('deselected', function(e) { canvas.setActive
当我启动 eclipse 时,项目浏览器窗口没有显示我的任何项目。如果我在项目资源管理器中打开菜单,它会显示“多个工作集”被选中。为了查看我的项目,我必须单击“取消选择工作集”,然后所有项目都会神奇地
是否有某种方法可以检测 JTextField 是否被取消选择,即字段被选中但现在您选择了其他内容。我想这样做的原因是因为我想在他们尝试提交数据之前检查我的用户表单是否有任何非法字符。如果有更简单的方法
我有 UILabel,我需要它能够支持复制和粘贴(实际上只能复制,因为它是只读的)。我对 UILabel 进行了子类化以支持复制,并且它工作正常。我还添加了文本突出显示,以便用户在单击标签时知道他到底
我有一个 SAPUI5 SelectDialog。它包含多个条目。现在,UI5 提供了使用 showClearButton="true" 清除所有选定值的属性 我想要实现什么?我想实现类似的功能,以在
我想使用 react-select multi Select 组件并且能够多次选择相同的选项。但是,react-select 不允许这样做。您可以使用 hideSelectOptions={false
嗯,我有一个包含用户数据的表和用于更改所选用户的按钮。该表上有一个监听器:当我双击表项时,我的按钮将启用(因为出现了所需的用户)。问题是如何在我的表格上创建一个监听器,它将检测到我的表格中没有选定的项
我是一名优秀的程序员,十分优秀!