1

我正在尝试在多选下拉菜单上使用拆分,它返回错误:“未捕获的类型错误:对象 f-all 没有方法‘拆分’”。不能在多选上使用拆分吗?

这是下拉列表(简化):

<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

4 回答 4

4
$(function(){

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

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

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

});​
于 2012-10-03T14:46:46.803 回答
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('-');
           // ..
    // }
});
于 2012-10-03T14:44:41.983 回答
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('-');
  });
});
于 2012-10-03T14:49:19.437 回答
0

要获取选定的值,您还可以执行以下操作:

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

这是一个演示:http: //jsfiddle.net/7HVPH/

于 2012-10-03T14:53:42.087 回答