2010-02-24 21 views
5
<select> 
      <option value="0" id="n">n</option> 
      <option value="1" id="m">m</option> 
</select> 

W jQuery w jaki sposób ustawić opcję "wybraną" dla id = m?Użyj jQuery wybierz opcję?

Odpowiedz

4

Wystarczy ustawić atrybut selected opcję:

$("#m").attr("selected", true); 

Jeśli chcesz także usunąć zaznaczenie innych opcji, gdy robisz to najprostsza opcja:

$("#m").attr("selected", true).siblings("option").removeAttr("selected"); 

ta nie obejmuje przypadku jednak zestawów pól. Aby objąć to użycie, należy użyć następującego polecenia:

$("#m").attr("selected", true).closest("select") 
    .find("option").removeAttr("selected"); 
+0

+1 Dzięki za przypomnienie mi;) –

0

nie jest poprawnym sposobem dodawania identyfikatora dla każdej opcji w zaznaczeniu. If I were you, chciałbym zrobić tak jak poniżej

<select id="myselect"> 
      <option value="0">n</option> 
      <option value="1">m</option> 
</select> 

Ustaw element z indeksem 1 stosując poniżej

$("#myselect option:eq(1)").attr("selected", "selected"); 
8

Ustaw identyfikator na zaznaczonym elemencie Zamiast:

<select id="TheDropDown"> 
    <option value="0">n</option> 
    <option value="1">m</option> 
</select> 

następnie użyj funkcja val:

$('#TheDropDown').val('1'); 
+1

Genialny! Po prostu genialny! –

+3

to nie działało dla mnie ani w FF 8.0, ani w Chrome 11.0 (ale działało .attr ('selected', true)) –

+0

@NickPerkins: Element 'select' nie ma żadnego atrybutu' selected', więc co ja myślę, że robisz źle, to że próbujesz użyć 'val' na' opcjach' zamiast 'wybierz'. – Guffa

0
$("#m").addAttr('selected', true) 
     .siblings('option') 
     .removeAttr('selected'); 
0

Zgadzam się z @ koderem. Jedną z niewielkich zmian w jego kodzie jest usunięcie poprzednio wybranego wpisu. Jeśli użytkownik już wybrał opcję, a następnie chcesz ją zmienić na coś innego przy użyciu jquery (chyba że twoje pole wyboru ma atrybut "wiele" zestaw), będziesz musiał usunąć zaznaczenie opcji wyboru użytkownika.

$("#myselect option:eq(1)").attr("selected", "selected").siblings("option").removeAttr("selected");

jak podaje @cletus.