2012-10-03 37 views
1

我想在多選下拉菜單上使用拆分,它返回一個錯誤:「Uncaught TypeError:對象f-所有沒有方法'拆分'」。是否可以在多重選擇上使用分割?jquery如何使用拆分多選select下拉列表

這裏是下拉(簡化):

<select data-placeholder="Select" placeholder="Select" name="id[]" id="id_menu" multiple> 
    <option value=""></option> 
    <option value="e-all">E All</option> 
    <option value="f-all">F All</option> 
</select> 

這裏是分割功能:

$('#id_menu').change(function(){ 
    var id_menu = $(this).val(); 
    var type = id_menu.split('-'); 
    // do stuff with split id 
}); 

與每一個仍然相同的錯誤消息

$('#id_menu').change(function(){ 
    $('#id_menu').each(function() { 
     var type = $(this).val().split(','); 
    }); 
}); 

由於試過提前。

回答

4
$(function(){ 

    $('select').change(function(){ 

     //typeof $(this).val() === 'Array' 

     $.each($(this).val(), function(i, val){ 
      console.log(val); //handle each selected value 
     }); 
    }); 

});​ 
2

當您使用多個屬性時,val返回一個沒有拆分方法的選定值的數組,您可以使用join方法將數組轉換爲字符串或通過數組循環。

$('#id_menu').change(function(){ 
    var id_menu = $(this).val().join(); 
    // var id_menu = $(this).val(); 
    // for (var i = 0; i < id_menu.length; i++) { 
    //  var sin = id_menu[i].split('-'); 
      // .. 
    // } 
}); 
1

id_menu是一個數組

$('#id_menu').change(function() { 
    var id_menu = $(this).val(); 
    //id_menu is an array 
    id_menu.forEach(function(item, index) { 
    var split_item = item.split('-'); 
    }); 
}); 
0

要獲得選擇的值,你也可以做這樣的事情:

$('#id_menu').change(function (e) { 
    $(e.currentTarget).val(); 
}); 

這裏是一個演示:http://jsfiddle.net/7HVPH/

相關問題