Вывод ошибок при регистрации через ajax

188
06 мая 2017, 22:14
xhr.onreadystatechange = function () {
    xhr.onreadystatechange = function () {
        if (this.readyState === 4 && this.status === 200) {
        document.getElementsByClassName('fname')[0].style.display = "none";
        document.getElementsByClassName('sname')[0].style.display = "none";
        document.getElementsByClassName('email')[0].style.display = "none";
        document.getElementsByClassName('bdate')[0].style.display = "none";
        document.getElementsByClassName('pass1')[0].style.display = "none";
        document.getElementsByClassName('pass2')[0].style.display = "none";
            alert(this.responseText);
            var result = this.responseText.split('&');
            if(result[0] == "success"){
                document.getElementById("registration").style.display = "none";
                document.getElementById("checkEmail").style.display = "block";
            } else {
                var errors = [];
                for (var i = 1; i < result.length; i++) {
                    var data = result[i].split(':');
                    errors[data[0]] = data[1];
                }
                if ( !errors['firstname'] ) {
                    document.getElementsByClassName('fname').innerHTML = errors['firstname'];
                    document.getElementsByClassName('fname')[0].style.display = "block";
                }
                else if ( !errors['secondname'] ) {
                    document.getElementsByClassName('sname').innerHTML = errors['secondname'];
                    document.getElementsByClassName('sname')[0].style.display = "block";
                }
                else if ( !errors['email'] ) {
                    document.getElementsByClassName('email').innerHTML = errors['email'];
                    document.getElementsByClassName('email')[0].style.display = "block";
                }
                else if ( !errors['birthdate'] ) {
                    document.getElementsByClassName('bdate').innerHTML = errors['birthdate'];
                    document.getElementsByClassName('bdate')[0].style.display = "block";
                }
                else if ( !errors['pass'] ) {
                    document.getElementsByClassName('pass1').innerHTML = errors['pass'];
                    document.getElementsByClassName('pass1')[0].style.display = "block";
                }
                else if ( !errors['pass2'] ) {
                    document.getElementsByClassName('pass2').innerHTML = errors['pass2'];
                    document.getElementsByClassName('pass2')[0].style.display = "block";
                }
            }
        }
    }

Почему innerHtml не вставляет ошибки в нужные параграфы, через алерт все нормально выводит, и display:block присваивается только к первой ошибке.

READ ALSO
Можно ли применить .animate() на .offset()?

Можно ли применить .animate() на .offset()?

Можно ли как-нибудь заанимировать данную строчку кода?

187
Как в Yii2 заставить работь jQuery и собственный скрипт одновременно?

Как в Yii2 заставить работь jQuery и собственный скрипт одновременно?

Опытным путем было выяснено, что пока Yii не подгрузит jQuery (а делает он это в последнюю очередь), мой скрипт работать не будет, потому что $ ему...

330
Проверка на наличие конкретного слова в адресной строке

Проверка на наличие конкретного слова в адресной строке

Доброго времени суток! У меня на странице есть 4 блока у которых есть свой 'id', по которому я перехожу с другой страницы нажимая на ссылку типа...

226
ДНЕВНИК - Первый проект на REACT и исходная конфигурация - JavaScript

ДНЕВНИК - Первый проект на REACT и исходная конфигурация - JavaScript

Всем доброго времени сутокПросьба - советом и "образцами кода" наставить на путь истины

157