2012-09-24 8 views
7

Im Folgenden finden Sie Code für ausgewählte Option und erzeugen php aus Datenbank und ich versuche selected="selected"-value="4" mit jQuery oder jede Javascript hinzuzufügen:Wie "ausgewählt" in Option Attribut mit Javascript oder jQuery?

<select id="countryselect" name="country"> 
<option value="1">Afghanistan</option> 
<option value="2">Albania</option> 
<option value="3">Algeria</option> 
<option value="4">Malaysia</option> 
<option value="5">Maldives</option> 
</select> 

i dies post zu beziehen versuchen aber immer noch nicht .. unten kann, ist, mein aktuelles Skript:

<script> 
localStorage.setItem("Select1", "Malaysia"); 
    $('#countryselect').find('option').each(function(i,e){ 
     if($(e).val() == localStorage.getItem("Select1")){ 
      $('#countryselect').prop('selectedIndex',i); 
     } 
    }); 
</script> 

danke.

Antwort

7

localStorage.getItem("Select1") wird Malaysia zurückgeben und $(e).val() wird 1,2 ... 5 in jeder Schleife zurückgeben. Dein Zustand wird niemals wahr sein. Statt

<script> 
localStorage.setItem("Select1", "4"); 
    $('#countryselect').find('option').each(function(i,e){ 
     if($(e).val() == localStorage.getItem("Select1")){ 
      $('#countryselect').prop('selectedIndex',i); 
     } 
    }); 
</script> 
+0

danke, Ihre Lösung ist Arbeit für mich .. – rusly

+0

@rusly, Sie sind willkommen –

1

Versuchen Sie einfach

$("#countryselect").val('4') 
    //OR 

$("#countryselect option").val('4')​.attr("selected", true)​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

prüfen diese FIDDLE

+1

Meinst du '$ (" # countryselect option [wert = 4] "). Attr (" ausgewählt ", true)'? – undefined

11

Dies sollte einfach funktionieren, $("#countryselect").val('4')​

Es wird automatisch selected=selected

Demo gesetzt: http://jsfiddle.net/muthkum/zYRkC/

+0

danke .. die Lösung ist so einfach: D – rusly

-1
$('#countryselect > option[value *= "4"] ').attr('selected',true); 

diese

+0

http://www.tutorialspoint.com/jquery/jquery-quick-guide.htm – Rahul

6

Das selected Attribut funktioniert verwenden ist ein boolean attribute setzt seine Präsenz den Wert des zugehörigen DOM-Eigenschaft auf true. Wenn das Attribut nicht vorhanden ist, lautet der Wert der ausgewählten Eigenschaft false.

Wenn eine Option das ausgewählte Attribut aufweist, dann wird diese Option beim ersten Laden der Seite oder beim Zurücksetzen des Formulars, für das das Steuerelement aktiviert ist, ausgewählt. Wenn die ausgewählte Option der Eigenschaft auf true gesetzt ist, wird diese Option ausgewählt. Wenn das Formular jedoch zurückgesetzt wird, wird die standardmäßig ausgewählte Option ausgewählt (d. H. Die mit dem ausgewählten Attribut oder die erste Option oder keine).

Um das ausgewählte Attribut (das heißt die Option, um die gewählte Option Standard):

var select = document.getElementById('countryselect'); 
var option; 

for (var i=0, i<select.options.length; i<iLen; i++) { 
    option = select.options[i]; 

    if (option.value == '4') { 
    // or 
    // if (option.text = 'Malaysia') { 
    option.setAttribute('selected', true); 

    // For a single select, the job's done 
    return; 
    } 
} 

Beachten Sie, dass dies nicht die Möglichkeit, die aktuell ausgewählte Option machen kann, es wird nur das ausgewählte Attribut hinzufügen. Um sicherzustellen, dass es ausgewählt ist (falls dies erforderlich ist), setzen Sie auch die ausgewählte Eigenschaft auf true (siehe unten).

Beachten Sie, dass das zweite Argument zu setAttribute eine Zeichenfolge sein soll, die zum Festlegen des Werts des Attributs verwendet wird. Das ausgewählte Attribut hat jedoch keinen "setzbaren" Wert, so dass das zweite Argument ignoriert wird (z. B. wird auch false das Attribut setzen und die Option zur standardmäßig ausgewählten Option machen). Das verursacht etwas Verwirrung. :-)

Um die ausgewählte Eigenschaft (d. H.macht nur die Option der aktuell ausgewählte Option):

var select = document.getElementById('countryselect'); 
var option; 

for (var i=0, i<select.options.length; i<iLen; i++) { 
    option = select.options[i]; 

    if (option.value == '4') { 
    // or 
    // if (option.text = 'Malaysia') { 
    option.selected = true; 
    return; 
    } 
} 
5

Ab jQuery 1.6 „Zum Abrufen und DOM-Eigenschaften zu ändern, wie die Option aktiviert ist, ausgewählt ist, oder deaktivierten Zustand von Formularelementen, verwenden Sie den .prop() -Methode. "

$("#countryselect option[value=4]").prop("selected", "selected") 
+0

Das hat ziemlich gut funktioniert. Prost! –

Verwandte Themen