JS: уникальный значение в инпутах
Здравствуйте.
Есть 7 input'ов, чтобы поддерживалась кроссбраузерность, с типом text. Подскажите, как реализовать: Возможность расставлять в них значения только от 1 до 7, и если значение уже было, то его повторно ввести нельзя (стирается или алерт, лучше и то и другое). Т.е. в первом инпуте указали - 3, больше тройку указывать нельзя. Функционал - очень похожей на тест, раставьте приоритеты в порядке ранжирования Спасибо! |
<div class="inputBlock">
<input type="text" maxlength="1" size="1">
<input type="text" maxlength="1" size="1">
<input type="text" maxlength="1" size="1">
<input type="text" maxlength="1" size="1">
<input type="text" maxlength="1" size="1">
<input type="text" maxlength="1" size="1">
<input type="text" maxlength="1" size="1">
</div>
<script>(function(){
var inputArr = [], inputs = [].slice.call(document.querySelectorAll('.inputBlock input'));
function input(event){
var target = event.target;
if( //если
/^[^1-7]$/.test(target.value) || //не равен 1-7
inputs.some(function(el){return el !== target && el.value === target.value}) //уже введён
){
return this.value = ''; //очищаем
} else { //иначе
if(this.nextElementSibling) this.nextElementSibling.focus() //фокус на следующий
}
}
inputs.forEach(function(el){el.oninput = input})
}())</script>
|
Спасибо! Самое то
|
| Часовой пояс GMT +3, время: 09:25. |