Bootstrap-datepicker-return-Fokus, nachdem wählen Sie

Wenn Sie initialisieren bootstrap-datepicker aus eternicode mit autoclose: true zwei unerwünschte Verhaltensweisen geschehen:

  1. Nach der picker schließt, wenn Sie mit der Tabulatortaste in das nächste Feld, beginnen Sie am Anfang des Dokuments wieder. Dies kann sehr umständlich auf langen Formen.
  2. Weil die Farbauswahl ändert sich der Wert programmgesteuert, alle Zuhörer, dass Sie, die Sorge um das blur-Ereignis auf die Eingabe nicht richtig verhält. Die Unschärfe tritt auf, wenn Sie wählen Sie die picker-Wert und die Eingabe der Wert hat sich nicht verändert. Dann wird die bootstrap-datepicker-programmgesteuert aktualisiert das Feld also blur ist nie gefeuert, mit dem neuen Wert.

Hier ist eine demo in der stack-snippets:

*wählen Sie ein beliebiges Feld aus, wählen Sie einen Wert aus dem picker, und drücken Sie dann Tab

JS:

$(".datepicker").datepicker({
  autoclose: true
});

HTML:

<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/css/datepicker.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/js/bootstrap-datepicker.js"></script>


<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>

Entsprechend der Antwort zu Fokus das Feld nach der Auswahl der jQuery-UI-datepicker, können Sie durch Tippen auf in der onClose oder onSelect Veranstaltungen, aber die bootstrap-picker bieten nicht die Ereignisse.

Einfach ersetzen Sie Sie mit hide scheint nicht zu funktionieren, seit der Neuausrichtung wird eine Endlosschleife erstellt, dass immer das picker öffnen Sie jedes mal, wenn Sie versuchen, um es zu schließen.

$(".datepicker").datepicker({
  autoclose: true
})
.on('hide', function () {
  $(this).focus();
});

Stack Snippet Demo:

JS:

$(".datepicker").datepicker({
  autoclose: true
})
.on('hide', function () {
  $(this).focus();
});

HTML:

<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/css/datepicker.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/js/bootstrap-datepicker.js"></script>


<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>

InformationsquelleAutor KyleMit | 2015-01-27
Schreibe einen Kommentar