2013-10-15 5 views
1

У меня проблема с этой строкой var value = $("#opstina option:selected").val();, но только в chrome я получаю, что это значение не определено. В FireFox и IE работает отлично, только в chrome я получаю это предупреждение. Кто-нибудь знает, почему? Html кодjquery select selected value undefined

<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

Его работа для меня, вы можете также использовать значение с DOM объект, который вы можете использовать индексатор для преобразования объекта DOM или использовать получить функцию

Live Demo

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

Но мне нужно значение, а не текст из отборных. – Thug

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

Fiddle Here

1

Я спутать, потому что:

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

работ: http://jsfiddle.net/Vm3qu/

и с основанием, выбранными: http://jsfiddle.net/Vm3qu/1/

+0

Мне не нужно менять, он предварительно выбран. У меня есть if ($ ("# opstina option: selected"). Length), прежде чем проверять, выбрано ли, и это нормально, только это значение не определено, и это сводит меня с ума. – Thug

+0

Можете ли вы посмотреть на http://jsfiddle.net/Vm3qu/2/? На моем хром и хром, '' alert ($ ('# opstina option: selected'). Val()); '' предупредите меня о значении выбранного .... [иначе извините меня, чтобы не понимать вообще: '(] – pbenard

+0

Хорошо, я видел ваш пример, и я знаю, что он должен работать, но каким-то образом на моем сайте Я получаю undefined. Только в chrome. Как это работает в других браузерах, но на хром не? – Thug

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.