【问题标题】:Controlling select change function on Unselect event在 Unselect 事件上控制选择更改功能
【发布时间】:2017-10-25 15:41:31
【问题描述】:

在我的 Java Script 中,我使用一个选择标签一个接一个地选择多个值,

我的要求是将这个新选择的值传递给函数。

一切都与 jQuery on Change 函数完美配合,但是当我从列表中取消选择项目时,它仍然会获取该项目并将其传递给函数。

如何解决这个问题?

 $("#clients").off('change').on('change', function(){
 selectedclientname = $(this).closest('select').find('option').filter(':selected:last').text();
 selectedclientid = $(this).closest('select').find('option').filter(':selected:last').val();
  function1(selectedclientid);
 });

【问题讨论】:

  • ` $('#clients').find(":selected").text();` 使用这个,你会得到选中的值
  • #clients是什么类型的元素?如果是<select>,那么你不应该使用$(this).closest('select'),而是使用$(this)
  • 是的,它是一个选择并且工作良好,我的问题是当我从列表中取消选择一个项目时,它会采用该值。那么如何在取消选择时限制 on('change' )?
  • 有什么办法可以防止这个查询中的取消选择选项,它应该只在我们选择一个新项目时起作用。但是,在我的解决方案中,当我从列表中取消选择该项目时,它会给出新列表中的最后一个项目。谢谢

标签: javascript jquery function controlling


【解决方案1】:

最后我通过以下方式弄明白了

   $("#clients").off('change').on('change', function(evt, params){              
         var itemSelected = false;
         console.log("::::::::::::::deselected"+ params.deselected);
         console.log("::::::::::::::selected"+ params.selected);
         if(params.selected != null)
             {
               itemSelected  = true;
             }
         else{
             itemSelected  = false;
             }
      });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-12
    • 2010-10-03
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多