使用 jquery 删除相关的 DropDowns 选项

Posted

技术标签:

【中文标题】使用 jquery 删除相关的 DropDowns 选项【英文标题】:Related DropDowns option deletion using jquery 【发布时间】:2012-01-13 09:34:49 【问题描述】:

我有两个下拉列表 DD1 和 DD2 ,我希望如果用户在 DD1 中选择选项 HELLO (value="100") 并按下一个键,那么 DD2 中的相同值选项被删除,DD1 将具有该选项, 它只会从 DD2 中删除

var selectedItems = $('#DD1').val();


 for ( var i = 0 ; i < selectedItems.length; i++) 
        
           $("#DD2 option[value='"+selectedItems[i]+']"').remove();
                                                                               

【问题讨论】:

到目前为止您尝试过什么?发布您的代码。他们将按下哪个键盘键? @Treffynnon : 任何关键先生,我们把它当作 9 【参考方案1】:

这不处理按键事件,但是当您确定要侦听的事件的细节时,这就是回调中可能发生的事情。

var dd1 = $("#DD1").val();

$("option[value='"+dd1+"']", $("#DD2")).detach();

【讨论】:

先生,ID 是 DD1 和 DD2 ,所以代替 $(DD1-Selector-Here).val() ,我必须写 $('#DD1').val() ;我猜? 先生,我已经发布了我在做什么【参考方案2】:

我的正在工作;

$('#DD1').bind('keypress', function(e)  

if ( e.which == 19)

 
var selectedItems = $('#DD1').val();


 for ( var i = 0 ; i < selectedItems.length; i++) 
        
           $("#DD2 option[value='"+selectedItems[i]+"']").remove();
         
  
 

【讨论】:

因此您正在检查“暂停/中断”键是否关闭,因为 e.which == 19 是大多数“标准”键盘上的“暂停/中断”键(在几个不同的键盘,包括戴尔包和网关包 kb 的)。只是想澄清你在做什么及其功能,所以也许我可以用更短的代码方式提供帮助。 (在这里查看我的哪个列表 -> forum.jquery.com/topic/eventwhich-code-list-just-for-help) 嗯,我在 3 个不同的系统上编程(主要用于交叉检查和基准测试),我刚刚检查过,使用我拥有的简单小提琴形式,并且得到了与往常一样的结果,19=Puase 和13=输入。 @SpYk3HH 是正确的,13 是输入的键码……更重要的是,为什么需要按键?用户是否会找到他们想要的选择然后按回车?这通常不是使用下拉菜单的方式。为什么不只监听 change 事件?

以上是关于使用 jquery 删除相关的 DropDowns 选项的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap Dropdowns 按钮不适用于 Angular 8 组件

升级到 4.7.0 后的 Kendo React Dropdowns 问题

Bootstrap Dropdowns 与 Rails 4 间断工作

删除侦听器类不会停止与 Jquery Javascript 相关的声音事件

使用带有 DELETE 的 Ajax 请求删除项目,使用 JQuery

Jquery2--属性相关的操作