Я пытаюсь оценить длину содержимого в поле ввода. Если длина содержимого равна 0, я хочу применить некоторые стили CSS.

Когда я удаляю оператор if, эта функция перестает фокусироваться. Вы видите, где я ошибся с синтаксисом?

$( "input" ).focusout(function() {                   
     var n = $( "input" ).length;                   
     if (n == 0) {                   
         $( '.enteremail' ).css( "transform", "translateY(0px)");                   
     }                   
});
2
Jason Howard 8 Окт 2018 в 14:45

2 ответа

Лучший ответ

Вы должны проверить значение ввода:

$('input').focusout(function() {
     // Check the value of the affected ("this") input
     var n = $(this).val().length;
     if (n === 0) {                   
         $('.enteremail').css('transform', 'translateY(0px)');                   
     }                   
});

Не количество полей ввода в документе

2
kapantzak 8 Окт 2018 в 11:48

$( "input" ).length вернет количество входов в текущем документе.

Сначала вам нужно использовать ключевое слово this для таргетинга на текущий ввод, который теряет фокус, затем использовать метод jQuery .val() для возврата значения ввода перед проверкой длины, например:

 $("input").focusout(function() {
      if ( $(this).val().length ) {                   
          $( '.enteremail' ).css( "transform", "translateY(0px)");                   
      }                   
 });
2
Zakaria Acharki 8 Окт 2018 в 11:50