使用JQuery </select>在<select>中获取价值

时间:2011-07-07 17:18:13

标签: javascript jquery

我需要获取SELECT标签的当前值。为此,我使用$('select').val(),但这只返回默认值,并且不会更改。我可以帮助我吗?

$('div#buy input').fancybox({
    ajax : {
        type    : "POST",
        data    : {
            id: $('input[name="id"]').val(),
            count: $('#count').val()
        }
    }
});

<select id="count">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>

8 个答案:

答案 0 :(得分:5)

$('#count').val()将返回当前选定的值。你缺少选项的价值。

<select id="count">
<option value="1">1</option>
<option value="2">2</option>........

修改:

如果您不想在选项中指定值,则可以使用。

$('#count :selected').val() 

答案 1 :(得分:3)

您可以在下拉列表中使用:selected选择器来获取当前选定的项目:

var selectedValue = $('#count :selected').val()

<强>更新

以下是这项工作的一个小提琴:http://jsfiddle.net/deYmN/

答案 2 :(得分:3)

试试这个:

$('select option:selected').val();

答案 3 :(得分:2)

在jQuery中,$('#count').val()将为id为“count”的<select>元素提供当前选定的值。我怀疑你的代码示例在用户做出选择之前就已经运行了,这就是你获得默认值的原因。您应该在用户做出选择后的某个时间设置count属性。这样的事情会起作用:

var fancyboxOptions = {
    ajax : {
        type    : "POST",
        data    : {
            id: $('input[name="id"]').val(),
            count: $('#count').val()
        }
    }
}

$(document).ready(function() {
    $('div#buy input').fancybox(fancyboxOptions);
    $('#count').change(function() {
        fancyboxOptions.ajax.data.count = $('#count').val();
    });
});

这样,当选择发生变化时,选项对象将会更新。

答案 4 :(得分:1)

您是否在用户更改选择之前运行fancybox / ajax?

这里工作正常:

http://jsfiddle.net/ERfFA/

答案 5 :(得分:1)

使用:

$('select :selected').val()

Source

答案 6 :(得分:1)

$("#count option:selected").val();
//Use text to get the text presented on the ui
$("#count option:selected").text();

工作示例:http://jsfiddle.net/AKmHU/

答案 7 :(得分:1)

您选择的ID是“count”,因此您需要执行以下操作:

$( '#计数:选择了')。VAL()