|
Для нескольких 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, время: 20:15. |
|