Появление кнопки при успешной валидации
есть вот такой скрипт:
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, время: 17:24. |