1
0
Fork 0
file-manager/assets/login.js

54 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-10-09 13:17:00 +08:00
/* jshint esversion: 6 */
2021-05-07 20:57:15 +08:00
let $inputs = $(".input-group-digits");
$inputs.each((i, input) => {
let cleanup = () => {
$(input)
.find("input")
.each((i, ele) => {
let cleaned = $(ele)
.val()
.replace(/[^0-9]/, "");
$(ele).val(cleaned);
});
};
let update = (e) => {
$digits = $(input).find("input");
2016-10-09 20:19:16 +08:00
// Cleanup
cleanup();
2016-10-09 20:19:16 +08:00
// Shift characters
let excess = "";
$digits.each((i, ele) => {
let now = excess + $(ele).val();
$(ele).val(now.charAt(0));
excess = now.substr(1);
});
2016-10-09 20:19:16 +08:00
// Move cursor to empty
$digits.each((i, ele) => {
if (!$(ele).val()) {
$(ele).focus();
if (e.which == 8) {
$(ele).prev().focus().val("");
}
return false;
}
});
2016-10-09 20:19:16 +08:00
// Submit if last digit is filled
if ($($digits[$digits.length - 1]).val()) {
let token = $.map($digits, (d) => $(d).val()).join("");
let $value = $(input).parent().find("#login-token-value");
$value.val(token);
$value.closest("form").submit();
}
};
2016-10-09 20:19:16 +08:00
$digits = $(input).find("input");
$digits.on("keyup", update);
$digits.on("change", update);
$digits.on("input", update);
2016-10-09 13:17:00 +08:00
});