无法引用所选选项的索引

时间:2014-09-28 13:18:27

标签: jquery html html5

我想在多重选择元素的onchange中获取所选选项的索引:

<select id="secta_code" name="secta_code[]" multiple="multiple" size="10" onchange="refreshProduits($(this option:selected).index());">
</select>

function refreshProduits(idx) {
    alert("zzzzzzzzzz");
}

但警报没有出现!有什么问题?

3 个答案:

答案 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);
});