|
Для нескольких input одна функция
Добрый день! Я начинающий, поэтому если можно "пинайте" с примерами.
Возникла такая проблема: есть несколько input <input class="digit" type="text" maxlength="8" name="ot" value=""> <input class="digit" type="text" maxlength="8" name="do" value=""> В них должны вноситься только цифры, а все остальное не должно даже отображаться в них. Если есть один input, то это можно реализовать через это:
document.getElementById("digit").onkeypress = function (e) {
return !(/[^0-9]/.test(String.fromCharCode(e.charCode)));
}
<input id="digit" type="text" maxlength="8" name="ot" value=""> А как реализовать с помощью классов, так чтобы одна функция подходила для всех элементов с определенным классом? |
Цитата:
<input type="number" max="99999999"> Но вводить позволяет не только числа. Но форма все равно не отправится если значение неверное. |
Цитата:
|
Хотя бы подскажите, как правильно обращаться к классам, чтобы менять их значение. Пробовал через getElementsClassName("digit"), но все тшетно
|
<!DOCTYPE HTML>
<html>
<head><meta charset="windows-1251" /> </head>
<body>
<input class="digit" type="text" maxlength="8" name="ot" value="">
<input class="digit" type="text" maxlength="8" name="do" value="">
<script>
digits=document.getElementsByClassName("digit")
filter=function () {
if(/\D+/g.test(this.value)) this.value=this.value.replace(/\D+/g, "")
}
for(i in digits){if(/\d+/.test(i)) digits[i].oninput=filter}
</script>
</body>
</html>
|
Спасибо, то что надо!
Кстати, первый раз увидел такой перебор цикла for(i in digits). Такое только в JS возможно? |
Цитата:
|
Цитата:
|
Цитата:
<!DOCTYPE HTML>
<html>
<head><meta charset="windows-1251" /> </head>
<body>
<input class="digit" type="text" maxlength="8" name="ot" value="">
<input class="digit" type="text" maxlength="8" name="do" value="">
<script>
digits=document.getElementsByClassName("digit")
filter=function (e) {
console.log(e.keyCode)
if(/\D+/g.test(this.value)) this.value=this.value.replace(/\D+/gi, "")
}
for(i in digits){if(/\d+/.test(i)) digits[i].onkeyup=filter}
</script>
</body>
</html>
Только притормаживает немного у меня в FF |
krutoy, а этот скрипт должен быть только после всех инпутов или его можно размещать в подключаемый файл в head?
|
| Часовой пояс GMT +3, время: 07:46. |
|