Ich lade ein dynamisches Bootstrap-Modal und es enthält nur wenige Texteingaben. Das Problem, mit dem ich konfrontiert bin, ist, dass der Cursor sich auf die erste Eingabe in diesem Modal konzentrieren soll, und dies geschieht nicht standardmäßig.
Also habe ich diesen Code geschrieben, um es zu tun:
$('#modalContainer').on('show', function () {
$('input:text:visible:first').focus();
});
Aber jetzt konzentriert es sich für einen Moment auf die Eingabe und verschwindet dann automatisch. Warum passiert das und wie kann man es lösen?
jquery
twitter-bootstrap
Amr Elgarhy
quelle
quelle
setTimeout(function() { /* Your code */ }, 100);
Antworten:
@scumah hat die Antwort für Sie: Twitter Bootstrap - Konzentrieren Sie sich auf den Textbereich innerhalb eines Modals beim Klicken
Für Bootstrap 2
Update: Für Bootstrap 3
========== Update ======
Als Antwort auf eine Frage können Sie diese Option mit mehreren Modalen auf derselben Seite verwenden, wenn Sie unterschiedliche Datenziele angeben, Ihre Modal-IDs entsprechend umbenennen und die IDs der Formulareingabefelder aktualisieren und schließlich Ihre JS entsprechend diesen neuen aktualisieren IDs:
siehe http://jsfiddle.net/panchroma/owtqhpzr/5/
HTML
JS
quelle
Ich habe den besten Weg gefunden, dies ohne jQuery zu tun.
funktioniert perfekt.
Dies ist ein HTML5-Attribut. Unterstützt von allen gängigen Browsern.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input
quelle
<input type="text" class="form-control" placeholder="" autofocus>
@Html.TextBoxFor(m => m.UserName, new { @autofocus="" })
tabdindex="-1"
von Ihrem Modal entfernen , funktioniert jedoch nur einmal. Das Schließen und Wiedereröffnen konzentriert sich nicht.Die Antwort von David Taiaroa ist richtig, funktioniert aber nicht, da Sie sich bei der Zeit zum "Einblenden" des Modals nicht auf die Eingabe konzentrieren können. Sie müssen eine Verzögerung erstellen:
quelle
<input value="" autofocus>
ich dieses Mal gut für mich gearbeitet, seltsamDer übliche Code (unten) funktioniert bei mir nicht:
Ich habe die Lösung gefunden :
Sehen Sie hier mehr
quelle
Ich habe diesen Bootstrap die folgenden Informationen auf ihrer Seite hinzugefügt:
http://getbootstrap.com/javascript/#modals
quelle
Dies ist der einfache Code, der am besten für alle Popups geeignet ist, die ein Eingabefeld mit Fokussierung haben
quelle
Ich denke, die richtigste Antwort unter der Annahme der Verwendung von jQuery ist eine Konsolidierung von Aspekten aller Antworten auf dieser Seite sowie die Verwendung des Ereignisses, das Bootstrap übergibt:
Es wäre auch zu ändern arbeiten
$(document)
zu$('.modal')
oder eine Klasse zu dem modalen hinzufügen , dass Signale , dass diese Konzentration auftreten sollen, wie$('.modal.focus-on-first-input')
quelle
Versuchen Sie diesen Code, es könnte für Sie funktionieren
quelle
$(this).find('input:text').first().focus()
Im ersten Schritt müssen Sie Ihr
autofocus
Attribut für die Formulareingabe festlegen .Und dann müssen Sie eine Deklaration hinzufügen, um den Autofokus Ihrer Eingabe einzustellen, nachdem Ihr Modal angezeigt wird.
Versuchen Sie diesen Code:
quelle
Wenn Sie nur ein offenes Modal automatisch fokussieren möchten, können Sie Muster oder lib-Funktionen in dieses Snippet einfügen, das sich auf die erste Eingabe konzentriert:
quelle
Wenn Sie nach einem Snippet suchen, das für alle Ihre Modalitäten geeignet ist, und automatisch nach dem ersten Eingabetext im geöffneten suchen, sollten Sie Folgendes verwenden:
Wenn Ihr Modal mit Ajax geladen wird, verwenden Sie stattdessen Folgendes:
quelle
Dies ist die allgemeinste Lösung
quelle
Versuchen Sie , die tabIndex-Eigenschaft des Modals zu entfernen , wenn Ihre Eingabe / Ihr Textfeld geöffnet ist. Stellen Sie es wieder auf das ein, was es war , wenn Sie die Eingabe / das Textfeld schließen. Dies würde das Problem unabhängig von der Bootstrap-Version beheben , ohne den Benutzererlebnisfluss zu beeinträchtigen .
quelle
Laut Bootstrap 4-Dokumenten:
Z.B:
Link .
quelle
Verwenden Sie den Autofokus, um nach dem richtigen Formularelement zu suchen:
quelle
Es ist "#button", der die modale Form aufruft,
"#mymodal" ist die modale Form,
"#myinput" ist die Eingabe, auf die Sie sich konzentrieren möchten
quelle