jquery选择未定义的选定值

时间:2013-10-15 08:49:36

标签: jquery html

我对此行var value = $("#opstina option:selected").val();有疑问,但只有在chrome中我才能获得该值未定义。在FireFox和IE中,工作正常,只有在chrome中才会收到此警告。有人知道为什么吗? Html代码是

<select id="opstina" name="opstina">
      <option value="0">Izaberite Mesto</option>
      <option value="1" selected="selected">Novi Sad-grad 1</option>
     <option value="2">Beograd-Stari Grad</option>
</select>

这是我的jquery代码

if ($("#drzava option:selected").length) {
                    $("select#opstina").attr("disabled","disabled");
                    $("select#opstina").html("<option>wait...</option>");
                    var id = $("select#drzava option:selected").attr('value');
                        $.post("select_opstina.php", {id:id}, function(data){
                        $("select#opstina").removeAttr("disabled");
                         alert( "html koji bi trebao biti upisan u select:\n\n" + data );
                        $("select#opstina").html(data);
            });
                        if ($("#opstina option:selected").length) {
                        alert('Došao sam pred petlju');
                         var value = $("#opstina option:selected")[0].value;
                         alert(value);
                        var sel = $("#opstina").val();
                        if (sel!=0) {
                              alert('Ušao sam u petlju, i selektovano polje za opštinu je' + sel );
            $("select#mesto").attr("disabled","disabled");
            $("select#mesto").html("<option>wait...</option>");
            var id= $("select#opstina option:selected").attr('value');
            alert(id);
            $.post("select_mesto.php", {id:id}, function(data){
                alert("html koji bi trebao biti upisan u select:\n\n" + data );
                $("select#mesto").removeAttr("disabled");
                $("select#mesto").html(data);
            });
        }
    }

                } 
}

5 个答案:

答案 0 :(得分:9)

以下内容适用于所有浏览器:

$('#drzava').find(":selected").val();   //tested in Chrome, safar, FF.

此外,您的下拉菜单不是多选,因此您也可以使用它:

$('#drzava').val(); //For multi-select too this work. In that case it gives you array of values.

答案 1 :(得分:4)

它为我工作,你也可以使用DOM对象的值,你可以使用索引器转换为DOM对象或使用get函数

<强> Live Demo

$("#opstina option:selected")[0].value;
$("#opstina option:selected").val()

答案 2 :(得分:1)

我很困惑,因为:

$('#opstina').on('change', function(){
    alert (  $('#opstina option:selected').val()  );
});

有效:http://jsfiddle.net/Vm3qu/

并选择了基数:http://jsfiddle.net/Vm3qu/1/

答案 3 :(得分:0)

试试这个会帮到你

   $("#opstina").change(function(){
        var value = $(this).val();// Value of selected option
        var Text = $(this).val();// Text of selected option
        alert('Value: '+value);
        alert('Text:' +Text);
    });

小提琴Here

答案 4 :(得分:0)

几年后,我遇到了与您完全相同的一本书:)听起来很奇怪,但是进行此简单的更改对我有用!我必须为id和name使用不同的值。
更改select id="opstina" name="opstina"select id="opstina" name="some other name"

此后,您的$("#opstina option:selected").val()会正常工作。