Festlegen des Fokus auf die nächste Eingabe in jQuery?
Hab ich momentan habe ein Skript, das werde überprüfen für Sie den Wert von einem select-Feld, und aktivieren Sie ein Textfeld rechts daneben, und dann hoffentlich setzen Sie den Fokus.
Habe ich diese im moment, welche gut funktioniert ist, dass das input-Feld...
$("#assessed select").change(function () {
if($(this).val() == 'null') { $(this).next('input').attr("disabled", true); }
else { $(this).next('input').removeAttr("disabled"); }
});
Bin ich ein bisschen fest auf die 'focus' - bit um ehrlich zu sein, ich habe versucht, "$(this).next('input').focus();" aber das hat nicht konzentrieren, obwohl es nicht bringen, ein Javascript-Fehler entweder...
$("#assessed select").change(function () {
if($(this).val() == 'null') { $(this).next('input').attr("disabled", true); $(this).next('input').focus(); }
else { $(this).next('input').removeAttr("disabled"); }
});
Irgendwelche Ideen, bitte Jungs? Ich bin wirklich stecken und es wäre eine sehr einfache, aber sehr nützliche Ergänzung zu der Seite, die ich Baue!
Dank
- Könnte Sie posten Sie Ihre HTML-wie auch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geändert von die obige Antwort mit Cache dieser jq-Objekt. Auch die filter im nächsten ist nicht erforderlich. next() immer nur zurück die nächsten Geschwister. Der filter ist im Grunde sagen will, bekomme ich die nächsten nur wenn es um ein input-oder was auch immer filter, die Sie geben. Wenn Sie sicher sind, das nächste ist das gewünschte Objekt, es gibt keine Notwendigkeit, die filter.
Fand auch ein nettes, kleines plugin, um den nächsten Eingang: http://jqueryminute.com/set-focus-to-the-next-input-field-with-jquery/
.not(':hidden')
auf die Felder der Erklärung, so dass nur die sichtbaren Elemente ausgewählt sind. Auch, hinzufügenelse {fields.first().focus();}
zu bekommen, den Fokus zu wickeln um auf das erste element..not(':disabled')
auf die Felder der Erklärung, so dass nur nicht-deaktivierte Elemente ausgewählt sind.Ich denke, dass Ihr problem könnte sein, dass es nicht möglich ist, legen Sie den Fokus auf ein deaktiviertes input-Steuerung (zumindest in einigen Browsern/Betriebssystemen).
Ihre
focus()
call ist grundsätzlich in den falschen block - es sollte in derelse
block, nicht dieif
block.Wie diese: