При наборе 4 символов курсор перемещается в следующее поле
Доброго времени!
Делаю форму для оплаты карточками. Нужно сделать как в стандартных вводах серийника - 4 поля по четыре символа. После ввода первых четырех, курсор перемещается в следующее поле. Искал в интернете, но ничего похожего не нашел. Заранее спасибо! |
<html> <head> <script> function check(obj) { if (obj.value.length == 4) { var next = obj.nextSibling; while(next.nodeType != 1 && next.nextSibling) next = next.nextSibling; if (next.nodeType == 1) next.focus(); } } </script> </head> <body> <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> - <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> - <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> - <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> </body> </html> |
Спасибо! :)
|
<html> <head> </head> <body> <form> <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> - <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> - <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> - <input type="text" size="4" maxlength="4" onkeyup="check(this);" /> <input type="checkbox" /> <input type="submit" /> </form> </body> </html> А вот если есть такая форма и нужно кнопку submit сделать активной только тогда, когда все поля заполнены? Как быть в этот раз? |
Добавьте еще пару строчек кода которые буду проверять поля и менять состояние кнопки.
На словах: пробегаете по всем полям, и если есть хоть одно поле не заполнено, то кнопки придаете стиль disabled = 'disabled'. Если же все поля заполнены то убираете: disabled = ''; |
Да, примерно так и сделал. Спасибо!
|
А не подскажете, почему перестал работать этот самый перескок?
http://msufootball.ru/tournaments/op...4/application/ <script> function Jump(x){ var ml = ~~x.getAttribute('maxlength'); if(ml && x.value.length >= ml){ do{ x = x.nextSibling; } while(x && !(/text/.test(x.type))); if(x && /text/.test(x.type)){ x.focus(); } } } </script> |
Часовой пояс GMT +3, время: 11:27. |