2014-09-28 29 views
2

有多個選擇元素:長度的選擇多的選擇的選項始終返回1

<select id="secta_code" name="secta_code[]" multiple="multiple" size="10"></select> 

$(document).ready(function() { 

    $('#secta_code').on('change',function() { 
     alert("nb = "+$(this,"option:selected").length); 
    }); 

}); 

如何動態地趕上的處理程序中選擇選項的數量?

回答

3

替代你可以使用這個:

$('#secta_code').on('change', function() { 
 
     alert("nb = " + $(":selected", this).length); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="secta_code" name="secta_code[]" multiple="multiple" size="10"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
    <option value="5">5</option> 
 
</select>

jQuery構造函數接受名爲context的第二個參數,其中 可用於覆蓋選擇的上下文。

1

嘗試使用find方法來代替:

$(document).ready(function() { 
 

 
    $('#secta_code').on('change',function() { 
 
     alert("nb = "+$(this).find("option:selected").length); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="secta_code" name="secta_code[]" multiple="multiple" size="10"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
    <option value="5">5</option> 
 
</select>

+0

這一次,我不得不使用'find'呢:) – pheromix 2014-09-28 14:02:35

0

試試這個: -

$(document).ready(function() { 
    $('#secta_code').on('change',function() { 
    alert("nb = "+ $('#secta_code option:selected').length); 
    }); 
}); 

DEMO