jQuery - 获取multiselect中未选择项的值

时间:2013-03-13 11:18:26

标签: javascript jquery jquery-chosen

虽然这听起来很简单,但事实上我只能在select元素上使用change()触发器。我正在使用'Chosen'jQuery插件,该插件基本上修改了页面上的多选框。

每当选择或取消选择一个项目时,插件都会触发原始select元素上的change事件。我显然能够获得所有未选择的项目,但我需要一个未被选中的项目,这会导致更改事件被触发。

所以我有以下功能,中间的位是我需要捕获刚刚未选中的项目。 #cho是原始select元素的id。

$("#cho").chosen().change( function() {

// Need code here to capture what item was just unselected, if any...

})

3 个答案:

答案 0 :(得分:3)

当用户更改复选框时存储值。

var preVal;

$( “输入[名称= 'G']”)。在( “变化”,函数(E){     如果(普雷瓦尔){

    alert(preVal);
}

preVal=$(this).val();

});

选中此http://jsfiddle.net/fcpfm/

答案 1 :(得分:2)

1.使用隐藏字段

2.Hidden field value最初为空。

3.Onchange将所选值放在隐藏字段中。

4.如果再次发生onchange,则隐藏字段值是先前选择的值。

$("#cho").chosen().change( function() {

 var hidvalue =  $('#hiddenfield').val();
 if (hidvalue ) {
   //Get the previously selected ids
    var prev_ids = $('#hiddenfield').val();
   //Then Update currently selected ids  
    $('#hiddenfield').val('currently selected ids');
 } else {
     //Update currently selected ids  
    $('#hiddenfield').val('currently selected ids');  
 }

})

答案 2 :(得分:1)

尝试使用变量存储所选项目。每次更改项目时更新它。我不能添加评论。这就是我发布它作为答案的原因。