1

複数選択ドロップダウンメニューでsplitを使用しようとしていますが、「Uncaught TypeError:Object f-all has nomethod'split'」というエラーが返されます。マルチセレクトでスプリットを使用することはできませんか?

ドロップダウン(簡略化)は次のとおりです。

<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しているため、splitメソッドを持たない、選択した値の配列を返します。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 に答える