jQuery .val()在更改选择框时返回undefined

时间:2012-03-19 14:12:36

标签: jquery

我有一个带有一些日期的选择框。我希望在输入更改时获取所述日期的值。我的价值一直不确定。

$('#date_pick').change(function(){
            var values = $('#date_pick:selected').val();
            alert(values);
});

Fiddle

7 个答案:

答案 0 :(得分:10)

您需要在#date_pick:selected之间加一个空格。

var values = $('#date_pick :selected').val();

小提琴:http://jsfiddle.net/PJT6r/9/

答案 1 :(得分:3)

使用<select>函数获取val()元素的值(就像所有其他表单元素一样)。

所以在你的情况下=&gt; $('#date_pick').val()

请注意,在更改回调范围中,您不需要重新选择元素,回调中的this是触发回调的DOM元素:

$('#date_pick').change(function() {
    alert($(this).val());
});

<强> LIVE DEMO

答案 2 :(得分:1)

你必须删除'选中'!

var values = $('#date_pick').val();

这是一个咖啡因问题,我敢肯定。

答案 3 :(得分:1)

或仅var values = $(this).val();

答案 4 :(得分:1)

您的选择器中不需要:selected位  使用:

$(function(){
        $('#date_pick').change(function(){
                    var values = $('#date_pick').val();
                    alert(values);
        });
});

答案 5 :(得分:1)

你可以;

 var values = $('#date_pick option:selected').val();

答案 6 :(得分:0)

尝试通过ID获取值时,我得到的是未定义/空值。因此,我尝试通过选择字段名称来获取选定的值。

<select name="date_pick" id="date_pick">
</select>

然后在jQuery中

$("select[name=date_pick]").val();

结果未得到未定义/空值。