SweetAlert, der Fokussierung einer Eingabe nach Bestätigung
Grundsätzlich habe ich ein Formular, wo Sie können hinzufügen eine Benutzers.
<div class="container">
<div><h1>Formulario para agregar Usuarios</h1></div>
<form id='addForm' role="form" method="POST">
<div class="form-group col-lg-6">
<div class="form-group ">
<label for="nombre">Nombre:</label>
<input class="form-control" type="text" id="nombre" name="nombre" maxlength="15" placeholder="Ingrese su Nombre"/>
<div id="nom" name="nom"></div>
</div>
<div class="form-group">
<label for="apellido">Apellido:</label>
<input class="form-control" type="text" id="apellido" name="apellido" maxlength="15" placeholder="Ingrese su Apellido" />
<div id="ape" name="ape"></div>
</div>
<div class="form-group">
<label for="correo">Correo:</label>
<input class="form-control" type="email" id="correo" name="correo" maxlength="30" placeholder="[email protected]"/>
<div id="cor" name="cor"></div>
</div>
<div class="form-group">
<label for="password">Contraseña:</label>
<input class="form-control" type="password" id="password" name="password" maxlength="15" placeholder="Ingrese una Contraseña (mínimo 6 caracteres)" />
<div id="pas" name="pas"></div>
</div>
<div class="form-group">
<button class="btn btn-default col-sm-2" id="addUser" name="addUser" type="submit" >
<span class="glyphicon glyphicon-plus-sign"></span> Agregar</button>
</div>
<div class="form-group col-sm-8" id="userData" name="userData"></div>
</div>
Nach Erfolg eine süße Warnmeldung erscheint auf dem Bildschirm sage Ihnen das hinzufügen arbeitete.
Bevor die swal
ich hatte eine normale Warnung und nach zeigen Erfolg, würde Es den Fokus auf die erste Eingabe von der form.
Aber nun, wenn die swal
zeigt, gibt Es den Fokus, während das Verschlucken die auf dem Bildschirm und, wenn Sie auf die Schaltfläche "bestätigen", der Fokus ist Weg.
Ich versuchte, zu onConfirmButton
auf false und dann fügen Sie eine Funktion
$.post('agregar.php', {nombre: nombre, apellido: apellido, correo: correo, password: password}, function(data) {
//Se recibe un resultado (data) y se muestra en el div
//(que en este caso sería una cadena string con algún mensaje)
if (data=='1') {
//swal("¡Hecho!", "¡Has Agregado un Usuario Nuevo!", "success");
swal({
title: "¡Hecho!",
text: "¡Has Agregado un Usuario Nuevo!",
closeOnConfirm: false
},
function(){
swal.close();
$('#nombre').val('')
$('#apellido').val('');
$('#correo').val('');
$('#password').val('');
$('#nombre').focus();
})
);
Aber es funktioniert einfach nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
.then(function(){
kurz vor dem schließen der swal mit ";".Ihren code verwenden, es wird so sein:
closeOnConfirm
Methode ist veraltet. VerwendencloseModal
als pro neuere version.Verwenden Sie die folgenden:
Siehe hier:
Referenz
So richten Sie das element in der Nähe.
Ich verstehe nicht, in sweemalert
Aber wenn Sie öffnen ein modal, sodass der Fokus auf dem input verloren gehen, wenn Sie klicken Sie auf beenden
Also, wenn Sie haben eine option, um das tun zu konzentrieren (wie in einer callback-Funktion) es tun.
Por la linea 227 de swetalert-dev.js encuentras este código y crea esta-variable $(datafocus).focus();.
JS:
Y en tu html-modifica así:
HTML:
Ich weiß, es ist ein altes Thema, aber ich Teile meine Lösung für jeden, der kommt hier aus der google-Suche 🙂
als "limont" gesagt hat in github:
"Eine kleine Verzögerung 100ms eingeführt wurde, bevor Sie sich die früheren aktiven element. Der Grund kann hier gefunden werden:Github"
und es ist JsFiddle von "limonte", die helfen, Ihr problem zu lösen:
komplettes Beispiel
- und das ist meine eigene code-Schnipsel funktioniert:
Schließlich löste ich dieses nur mit einem Ort.reload();
Hinzufügen und ein autofocus-Attribut auf die erste Eingabe.