2014-03-04 4 views
0

Я пытаюсь написать код js для проверки формы. Я придумал этот код, где я первый хочу, чтобы проверить, если поля пусты:Проверка достоверности формы при первой итерации

var validationInfo = {"displayname" : {}, "password" : {}, "email" : {}, "username" : {}}; 

document.newUser.onsubmit = function() { 
    for(key in validationInfo) { 
     var field = document.getElementById(key); 
     if(field.value == "") { 
      field.setAttribute("style","background-color: yellow;"); 
      field.select(); 
      return false; 
     }//checking empty fields 
    }//check validation 
    return true; 
} 

Когда я представляю только первое поле формы желтеет, поэтому я думаю, что проверка останавливается после первой итерации. Неправильно ли указано «return false»?

Второй вопрос, если я хочу проверить что-то еще, как если бы поля были пустыми, я должен делать это в той же или другой функции? Какова наилучшая практика?

Благодаря

+0

Удалить 'вернуть ложь,' –

+0

Return приводит к остановке итерация, IMO –

+0

@kristjanreinhold: Это факт, а не мнение ;-) – Cerbrus

ответ

2

Используйте переменную _valid и присвоить его ложным, если возникает какая-либо ошибка проверки. Верните эту переменную.

var validationInfo = {"displayname" : {}, "password" : {}, "email" : {}, "username" : {}}; 

document.newUser.onsubmit = function() { 
    var _valid = true; 
    for(key in validationInfo) { 
     var field = document.getElementById(key); 
     if(field.value == "") { 
      field.setAttribute("style","background-color: yellow;"); 
      field.select(); 
      _valid = false; 
     }//checking empty fields 
    }//check validation 
    return _valid; 
} 
+1

Почему '_valid', а не что-то, что не использует случайный символ подчеркивания, и немного более наглядное, например:' formIsValid'? Просто придирая сюда ;-) – Cerbrus

Смежные вопросы