4

我对这条线有问题 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);
            });
        }
    }

                } 
}
4

5 回答 5

12

以下应该适用于所有浏览器:

$('#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.
于 2013-10-15T10:11:15.500 回答
5

它对我有用,您还可以将值与 DOM 对象一起使用,您可以使用索引器转换为 DOM 对象或使用 get 函数

现场演示

$("#opstina option:selected")[0].value;
$("#opstina option:selected").val()
于 2013-10-15T08:50:32.497 回答
1

我很困惑,因为:

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

作品:http: //jsfiddle.net/Vm3qu/

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

于 2013-10-15T08:53:55.080 回答
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

于 2013-10-15T08:52:47.303 回答
0

几年后我从你那里遇到了完全相同的问题:)听起来很奇怪,但是做这个简单的改变对我有用!我不得不为 id 和 name 使用不同的值。
更改select id="opstina" name="opstina"select id="opstina" name="some other name"

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

于 2019-09-27T22:54:15.147 回答