Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Cannot read property 'length' of undefined (https://javascript.ru/forum/dom-window/81271-cannot-read-property-%27length%27-undefined.html)

Diiim 02.11.2020 12:55

Cannot read property 'length' of undefined
 
Доброго времени, уважаемые форумчане!

Делаю проверку полей у комментариев на вордпресс и что то не могу понять почему выдает ошибку "Cannot read property 'length' of undefined"

А иногда этой ошибки вообще нет, т.е. в консоле она не фиксируется. Может конечно это из за плагина кеша!



jQuery(window).on('load', function() {

function validate(){
    if (jQuery('#commentform input[type="text"]').val().length   >=   5   &&
        jQuery('#commentform textarea').val().length   >=   10   &&
        jQuery('#commentform input[type="email"]').val().length    >=   7) {
        jQuery('#commentform input[type="submit"]').prop("disabled", false);
    } else {
        jQuery('#commentform input[type="submit"]').prop("disabled", true);
    }
}

    //var mmail = '';
    //jQuery('#commentform input[type="email"]').attr('pattern', '([A-z0-9_.-]{1,})@([A-z0-9_.-]{1,}).([A-z]{2,8})');
    validate();
    jQuery('#commentform input[type="text"]').on('keyup', validate);
    jQuery('#commentform input[type="email"]').on('keyup', validate);
    jQuery('#commentform textarea').on('keyup', validate);

});

laimas 02.11.2020 15:13

jQuery(window).on('load', function() ... возникает тогда, когда будет загружен не только DOM, но прочее содержимое, а вам ведь для обработки этих полей зачем все это ждать, поэтому экономичнее

jQuery( document ).ready(function() {
    //здесь ваши обработчики
});


Касаемо ошибки, то она будет возникать, когда недоступен объект, к которому обращение.

Diiim 02.11.2020 19:38

Цитата:

Сообщение от laimas
laimas

спасибо большое, теперь работает во всех браузерах.
Дело было совсем за малым, на "ready function" даже не обратил внимания.


Часовой пояс GMT +3, время: 02:34.