2012-08-16 16 views
5

Próbuję uzyskać wartość rozwijaną przy zmianie (a następnie zmienić wartości w drugim menu rozwijanym).jQuery pobiera wybraną wartość rozwijaną przy zmianie

EDIT: Dzięki za wszystkie odpowiedzi, mam zaktualizowany do dodaj(), ale kod jest powrocie nic, nie zerowej lub niezdefiniowanej tylko puste okno alertu

Jednak kiedy ostrzec go przez attr (wartość) jest niezdefiniowana.

Jakieś pomysły na temat tego, czego mi brakuje?

Oto mój kod:

<script type="text/javascript"> 
      $(document).ready(function() { 

       var roomID = "0" 
       $('.dropone').load('ajaxdropdown.aspx'); 
       $('.droptwo').load('ajaxdropdown.aspx?drpType=room&roomid=' + roomID); 

       $('.dropone').change(function() { 
       var ts = new Date().getTime(); 
       alert($(this).val) 

        $(".droptwo").empty(); 
        $(".droptwo").load("ajaxdropdown.aspx?drpType=room&roomid=" + $(this).attr("value") + "&ts=" + ts); 
       }); 

      });   
     </script> 
+0

.dropone jest wybranym elementem? – fliim

+0

zapomniałeś '()' w '$ (this) .val()' –

Odpowiedz

11

val jest metodą, a nie własność.

używać go jak val()

Jeśli używasz go do wielu miejsc, by przypisać ją do zmiennej lokalnej i używać go później.

Możesz również użyć funkcji $.now(), aby uzyskać unikalny znacznik czasu. Jest równy DategetTime();

$('.dropone').change(function() {  
    var item=$(this); 
    alert(item.val()) 
    $(".droptwo").empty(); 
    $(".droptwo").load("ajaxdropdown.aspx?drpType=room 
         &roomid=" +item.attr("value") + "&ts=" + $.now()); 
}); 
3

Należy uzyskać wartość przy użyciu metody, a nie materialnych. Użyj tego:

alert($(this).val()) 
+0

Dzięki temu, teraz nic nie zwraca, nie jest niezdefiniowane, ale nic nie jest zwracane – TMB87

+0

@TomBeech - To brzmi jak problem HTML. Czy możesz pokazać kod HTML dla swojego rozwijanego menu? – jeff

1

Dodaj nawiasach okrągłych do Val: alert($(this).val())

9
$('.dropone').change(function() { 
    var val = $(this).val(); 

    // OR 

    var val = this.value; 
}) 
0

Można również uzyskać atrybutów niestandardowych z rozwijanego menu jak poniżej;

 $('.someclass').change (function() { 
       var val = this.value; 
       alert(val);          //selected value 

       var element = $(this).find('option:selected'); // assign selected element 
       var myTag = element.attr("aTag");    // get attribute by name 
       alert(myTag); 
    }); 


<option name='somename' id='someid' aTag='123' value='XYZ'>XYZ</option> 
Powiązane problemy