Задать вопрос
@f_u_s_s
Любопытный кодер

Почему в jquery 2.2.4 removeClass срабатывает, а в 3.1.1 нет?

Есть такой кусок кода:
<...>
var 
    form = $(this), 
    btn = form.find('.btn_submit'); 
<...>
    setInterval(function(){
	  checkInput();
      var sizeEmpty = form.find('.empty_field').size();
      if(sizeEmpty > 0){
        if(btn.hasClass('disabled')){
          return false
        } else {
          btn.addClass('disabled')
        }
      } else {
        form.find('.btn_submit').removeClass('disabled')
      }
    },500);


По задумке:
после выполнения функции checkInput() считается количество полей с селектором ".empty_field" и если оно равно нулю, то удаляется класс "disabled" на кнопке. При подключении jQuery версии 2.2.4 все срабатывает как и задумывалось, но при подключении версии 3.1.1 класс "disabled" перестает удаляться, и соответственно дальнейший код не позволяет отправить форму с этим классом. Почему так происходит, в чем отличия в 3й версии?
Спасибо!
  • Вопрос задан
  • 255 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Inkognitoss
@Inkognitoss
Full-stack разработчик.
Попробуйте вместо
var sizeEmpty = form.find('.empty_field').size();
использовать
var sizeEmpty = form.find('.empty_field').length;

А на вопрос почему, нам может ответить документация jquery
The .size() method is deprecated as of jQuery 1.8. Use the .length property instead.

а в версии 3 вообще удален этот метод
removed: 3.0
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы