Пишем универсальный валидатор текстовых полей:
Код | <script type="text/javascript"> /** * Обрабатывет все элементы после загрузки */ function initFormCheck() { var inps=document.getElementsByTagName("INPUT"); for(var i=0; i<inps.length; i++) { if(inps[i].getAttribute("testreg")==null) continue; else inps[i].onkeyup=inputTextCheck; inputTextCheck(inps[i]); } } /** * Проверка. Реги и прочую инфу берём из аттрибутов тега. */ function inputTextCheck(obj) { var o=(obj&&obj.tagName)? obj: this; var reg=new RegExp("^"+o.getAttribute("testreg")+"$"); if(reg.test(o.value)) { o.className=o.getAttribute("passclass"); return true; } else { o.className=o.getAttribute("failclass"); return false; } } </script>
<body onload="initFormCheck();"> <!-- пример: допускаем только цифры 0-9 --> <input type="text" id="str1" name="text1" testreg="[0-9]+" failclass="fout" passclass="pass"> <!-- допускаем что угодно --> <input type="text" id="str2" name="text2" testreg=".+" failclass="fout" passclass="pass"> <!-- не обрабатываем поле --> <input type="text" id="str5" name="text5"> <!-- как видно для обработки требудется три параметра: рег, имя стиля при правильной проверке и имя стиля при ошибке --> </body> |
Стили можно задать какие угодно, по задаче это:
Код | <style type="text/css"> .pass { border: 1px solid black; } .fout { border: 1px solid red; } </style> |
|