jquery-option funktioniert nicht in chrome
Ich versuche, auto wählen Sie die option wählen, die von jquery nach Holen der Wert der option muss ausgewählt werden. Aber es funktioniert nicht in Chrome. Seine arbeiten in firefox und IE 9. Warum ist es so ? Funktion füllen ist das eine, die füllt die Werte.
(Funktion res, setzt nur die Werte gefüllt, von der Funktion füllen und ist nicht wichtig für diese Frage)
function fill(thisValue) {
$('#inputString').val(thisValue);
$.post("get.php?op=category", {queryString: ""+thisValue+""}, function(data){
if(data.length >0) {
$("#mymenu option[value='"+data+"']").attr('selected', 'selected');
$('#mymenu').attr("disabled","disabled");
}
});
$.post("get.php?op=name", {queryString: ""+thisValue+""}, function(data){
if(data.length >0) {
$('#nameString').val(data);
$('#nameString').attr("disabled","disabled");
}
});
$.post("get.php?op=author", {queryString: ""+thisValue+""}, function(data){
if(data.length >0) {
$('#authorString').val(data);
$('#authorString').attr("disabled","disabled");
}
});
$.post("get.php?op=publisher", {queryString: ""+thisValue+""}, function(data){
if(data.length >0) {
$('#publisherString').val(data);
$('#publisherString').attr("disabled","disabled");
}
});
setTimeout("$('#suggestions').hide();", 200);
}
function res(inputString) {
$('#publisherString').attr("disabled", false);
$('#publisherString').val('');
$('#nameString').attr("disabled",false);
$('#nameString').val('');
$('#authorString').attr("disabled",false);
$('#authorString').val('');
$('#mymenu').attr("disabled",false);
$('#mymenu option').attr('selected', false);
}
- Versuchen Sie, ändern Sie
attr('selected', 'selected')
zuprop('selected', true)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie val(), um den Wert eines
select
element.Ändern
zu
Demo-Fiddle
Andere Lösung ist die Verwendung prop(). Die attr() Methode wird verwendet, um den Wert des Attributs des Elements, nicht für die Eigenschaft festlegen.
Lesen Sie mehr über attr vs prop, sowie die jQuery 1.6 release-note
Demo-Fiddle
Wenn Sie Daten mit einem Tippfehler in der Erklärung unten sieht es aus wie val nicht funktioniert. Ich brauchte eine Weile, um zu bemerken.
Hier ist etwas, was mir gerade aufgefallen ist, über der der name, den Sie im option-tag. Ich verwende meinen code als Beispiel. Sie sehen, wo es sagt, Blau und Schwarz unten?
Lassen Sie uns sagen, Blau ist derzeit in ausgewählten. Wenn Sie drücken den Buchstaben " B " auf Ihrer Tastatur (groß - /Kleinschreibung spielt keine Rolle) wird es nicht ändern, egal was. Dies gilt selbst dann, wenn Sie ein onkeydown-Ereignis soll der Wert gesetzt wird, wie:
Daran erinnern, dass ich sagte, der obige code funktioniert NICHT, wenn ich
Jedoch, es funktioniert, wenn ich
Also ja, die moral der Geschichte: es scheint, Sie haben auch zu berücksichtigen, den ersten Buchstaben in Ihre option name.