Ich fange an, etwas Javascript für meine Website zu schreiben, um eine bessere Benutzererfahrung zu erstellen, aber ich bin ein wenig verwirrt darüber, was genau passiert, und vielleicht ist es klar, jemand anderes was ich mache ich falsch oder vermisse es. Ich habe zwei JavaScript-Funktionen, die nach der ersten Verwendung perfekt funktionieren und wenn Sie es langsam verwenden (manchmal überspringt es das nächste Element und wählt nichts aus, wenn Sie zwei Tasten zu schnell drücken). Ich habe das Gefühl, dass mir eine Art $ (Dokument) fehlt .ready (function() {}); Implementierung, um sicherzustellen, dass jeder Prozess abgeschlossen ist, bevor es weitergeht. Ich habe zwei Textfelder, die der Benutzer in zwei Zahlen einträgt, dann geht es weiter zum nächsten Tab-Element (dem nächsten Textfeld). Die Textfelder befinden sich auch in einem asp.net-Update-Panel, wenn dies Auswirkungen hat.Javascript/Jquery einfache Benutzererfahrung Funktionen
function selectall(item) {
$(item).focus().select();
};
function selectNext(textBox) {
if ($(textBox).val().length == 2) {
$(textBox).next().focus().select();
}
};
<asp:TextBox ID="Text1" runat="server" Width="30px" AutoPostBack="True" onkeyup="selectNext(this);" onclick="selectall(this);"
Height="20px"></asp:TextBox>:
<asp:TextBox ID="Text2" runat="server" Width="30px" AutoPostBack="True" onkeyup="selectNext(this);" onclick="selectall(this);"
Height="20px"></asp:TextBox>
<asp:DropDownList ID="Text2" runat="server"
Diese Textfelder in einem Update-Panel sind, weil es Teil eines Jquery Dialog Pop-up für einige Benutzereingaben an den Server senden muss wieder einige füllen Daten in C# -Funktionen, bevor sie für den Benutzer geladen werden. Also beginnen diese Textfelder mit zwei Zahlen. Vielen Dank für den Hinweis auf die Autopostback, die ich hatte, löste das erste Problem, wo es nicht das erste Mal funktionieren würde, aber wenn Sie noch den Schlüssel hochheben, wird es über das nächste Textfeld überspringen. – Marrs
Ich sollte auch erwähnen, ich benutze die .blockui-Funktion, um die Seite zu sperren, bis sie auf dieses Dialogfeld Pop-up div reagieren und klicken Sie auf Senden oder Abbrechen. und wenn ich $ (Dokument) .ready (function() {}); Um meine Funktionen herum sagt die Google Konsole, dass sie diese Skriptfunktionen nicht finden kann. – Marrs
Ich glaube, dieses Skipping-Problem hat etwas mit dem onkeyup-Ereignis zu tun, weil es möglicherweise in das nächste Feld wechselt, bevor Sie den Schlüssel vollständig freigeben? Auslösen der nächsten Textfelder Key-up-Ereignis? also irgendwie das gleiche Key-up-Ereignis für beide Textfelder? ist meine beste Schätzung – Marrs