Появление кнопки при успешной валидации
есть вот такой скрипт:
function regular(reg, flags, nValue) { var myReg = new RegExp (reg, flags); if (myReg.exec(nValue)) return true; else return false; } function validation(node) { if (node.name == 'login') { var reg = "^[\.\s 0-9a-zA-Z_-]+$"; var flags = ""; var p = regular(reg, flags, node.value); if (p) { node.style.color = "#00ff00"; document.all.tr5.cells[2].innerText=""; } else { node.style.color = "#ff0000"; document.all.tr5.cells[2].innerText="допустимы латинские символы, цифры, подчеркивание, тире, точка, пробел"; document.all.tr5.cells[2].style.color="#ffff00"; } } if (//что здесь) { document.all.button.cells[0].innerHTML="<input type='submit' name='sub_register' value='Зарегистрироваться'>"; } <tr id="tr5"> <td>Логин</td> <td><input onChange="validation(this)" type="text" size="10" name="login"></td> <td></td> </tr> как сделать чтобы при успешном прохождении regular() появилась кнопочка "Зарегистрироваться"? п.с. есстественно логин не единственный параметр который вызывает regular(). |
всегда делаю флаг с ошибками и затем проверяю ..
изначально кнопка скрыта. Если ошибки есть -- ничего не меняю, иначе показать кнопку |
можно поподробнее с флагом, я так понимаю что вы имеете в виду чтото типа этого:
if (p) { node.style.color = "#00ff00"; document.all.tr5.cells[2].innerText=""; var flag = true; } else { node.style.color = "#ff0000"; document.all.tr5.cells[2].innerText="допустимы латинские символы, цифры, подчеркивание, тире, точка, пробел"; document.all.tr5.cells[2].style.color="#ffff00"; var flag = false; } } if (flag) { document.all.button.cells[0].innerHTML="<input type='submit' name='sub_register' value='Зарегистрироваться'>"; } но я ту функцию буду вызывать не только для проверки логина, еще и для других полей регистрации, и флаг будет работать только для данного поля, а в проверки же должно быть и для остальных полей. или я не так понял? |
если не очень красиво -- то много флагов
если красивее -- то можно массив с ошибками если для ленивых -- то можно валидатор на том же jQuery я лично делаю так var error=0; function validator(value) { если есть ошибки error=1; прячем кнопку иначе error=0; показываем кнопку } <input type='text' id='login' onblur="validator(this.value)"> <input type='text' id='pass' onblur="validator(this.value)"> <input type='text' id='name' onblur="validator(this.value)"> ... |
Часовой пояс GMT +3, время: 10:53. |