【问题标题】:Jquery, Chosen : How can I get the value that was removedJquery,Chosen:如何获取已删除的值
【发布时间】:2015-03-23 18:00:09
【问题描述】:

我正在使用 Chosen Jquery,我想获取从多选列表中取消选择的值。不知何故,我不明白。我做错了什么?

   $("#teachingOptions").chosen().change(function (evt, params) {

    if (params.selected) {
        var value = $("#teachingOptions option:selected").val(); // This is working fine
        alert(value)
        return;}

else{

var value = $("#teachingOptions option:selected").val();  //Problem lies here, This Does not returns the correct value.
      alert value;   
      return;

}

所以当有人选择它的工作正常,但如果有人从已经选择的列表中取消选择,它不会返回值,它会显示未定义。

【问题讨论】:

  • 看看this answer,这不是一个完整的解决方案,但它可能会有所帮助
  • 在你提到的例子中,de是什么? var de = $.grep(all, function (element) { return $.inArray(element, foo) !== -1; });

标签: javascript jquery


【解决方案1】:

实际上当用户取消选择时,该值将是一个空字符串,所以你需要存储之前的值,并在取消选择时获取它;

注意$("#teachingOptions option:selected").val(); 返回的值与params.selected 相同

var oldValue = $("#teachingOptions");
$("#teachingOptions").chosen().change(function (evt, params) {
    var value = params.selected || ''; // if params.selected is empty use an empty string
    if (!params.selected) { // deselected
        // the value that was deselected is avaliable in oldValue variable
    }
    oldValue = value; // value changed, so update the stored value
    alert (value);
}

【讨论】:

  • 但是一个用户可以选择很多值,我怎么知道哪个值没有被选择?
  • 问题中并不清楚它是多选,我建议您编辑问题标题和提及多选的文字。如果我能找到解决方案,我将编辑答案
猜你喜欢
  • 2014-12-31
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 2016-11-20
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
相关资源
最近更新 更多