Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title></title>
- <style media="screen">
- input[type='number'] {
- appearance: textfield;
- }
- input[type='number']::-webkit-inner-spin-button,
- input[type='number']::-webkit-outer-spin-button,
- input[type='number']:hover::-webkit-inner-spin-button,
- input[type='number']:hover::-webkit-outer-spin-button {
- -webkit-appearance: none;
- margin: 0;
- }
- </style>
- </head>
- <body>
- <form id="form">
- </form>
- </body>
- <script type="text/javascript">
- const form = document.getElementById('form');
- form.addEventListener('submit', (e) => {
- e.preventDefault();
- let number = '';
- const numbers = document.getElementsByTagName('input');
- for (let nr of numbers) {
- number += nr.value;
- }
- alert('Submitted ' + number);
- });
- function buildForm() {
- for (let i = 0; i < 4; i++) {
- const numberInput = document.createElement('input');
- numberInput.setAttribute('type', 'number');
- numberInput.setAttribute('id', i);
- numberInput.setAttribute('max', '9999');
- numberInput.setAttribute('maxlength', '4');
- numberInput.addEventListener('keydown', (e) => {
- handleInput(e, i);
- });
- if (i === 0) {
- numberInput.value = 3528;
- numberInput.setAttribute('disabled', true);
- }
- form.appendChild(numberInput);
- }
- const submitBtn = document.createElement('button');
- submitBtn.setAttribute('type', 'submit');
- submitBtn.appendChild(document.createTextNode('Submit'));
- form.appendChild(submitBtn);
- }
- function handleInput(e, i) {
- const input = document.getElementById(i);
- if (e.keyCode !== 8 && input.value.length === 4) {
- if (document.getElementById(i+1) !== null) {
- document.getElementById(i+1).focus();
- } else {
- document.getElementsByTagName('button')[0].focus();
- }
- } else if (input.value.length > 4) {
- input.value = input.value.slice(0, 4);
- } else if (e.keyCode === 8 && input.value.length === 0) {
- document.getElementById(i-1).focus();
- }
- }
- buildForm();
- </script>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement