我想在多重选择元素的onchange中获取所选选项的索引:
<select id="secta_code" name="secta_code[]" multiple="multiple" size="10" onchange="refreshProduits($(this option:selected).index());">
</select>
function refreshProduits(idx) {
alert("zzzzzzzzzz");
}
但警报没有出现!有什么问题?
答案 0 :(得分:1)
嗯,你应该这样做:
refreshProduits($(this).find('option:selected').index());
你在jQuery部分的语法错误。并且在加载jQuery时不应该使用inline-js。
如果是直系孩子,也可以使用children()
。
答案 1 :(得分:1)
这是无效的语法:
$(this option:selected)
jQuery选择器无法猜出你的意思,你必须为它提供有效的语法。也许你的意思更像是这样的东西?:
$(this).children("option:selected")
或者可能:
$(this).find("option:selected")
如果您对选项进行分组。
答案 2 :(得分:1)
我认为这个错误可能只是缺少引号,
即
refreshProduits($(this option:selected).index());
应该是,这是$(this).find(查询)
的简写refreshProduits($(this, "option:selected").index());
我建议使用.on()而不是内联JavaScript进行绑定,并且.index()也无法正确使用多个选项,您需要使用.val()这将为您提供所选值的列表。
$("#secta_code").on('change', function() {
var values = $(this, 'option:selected').val();
alert("zzzzzzzzzz " + values);
});