2016-04-19 3 views
0

У меня есть несколько текстовых входов на HTML-странице с классом = «min_value», мне нужно добавить некоторую проверку на эти текстовые входы с помощью jQuery, показана основная проверка, по существу, значение вводится ниже 250.00, значение текстового поля устанавливается равным 250,00.Объединение функций .each и .change

Это хорошо работает с одним текстовым вводом с классом «min_value», но не при наличии нескольких текстовых входов с именем класса. Можно ли изменить этот код, чтобы проверка выполнялась на каждом текстовом входе и изменялось только значение этого ввода текста?

jQuery(function ($) { 

    $(".min_value").each(function(){ 

     $(".min_value").change(function(){ 

      var min_value = $(".min_value").val(); 

      if(min_value <= 250){ 
       $(".min_value").val('250.00'); 
       alert('The Minimum Value can not be less the 250.00'); 
      } 
     }); 
    }); 
}); 
+0

В обработчике изменения вам необходимо обратиться к текущему элементу, вы можете использовать 'this' ссылку на это. Также нет необходимости в каждом цикле. 'jQuery (function ($) { $ (". min_value "). change (function() { var min_value = $ (this) .val(); if (min_value <= 250) { $ (this) .val ('250,00'); alert ('Минимальное значение не может быть меньше 250,00'); } }); }); ' –

+0

Вы не можете закодировать событие, инкапсулирующее его. В DOM jQuery связывает событие с правилом выбора, которое вы прошли просто. Это срабатывает, когда срабатывает «selector» vs «тип события», например, щелчок, изменение, фокус или что-то еще .. – RPichioli

ответ

1
jQuery('.min_value').on('input', function() { 
    if((this).val() <= 250){ 
      $(this).val('250.00'); 
      alert('The Minimum Value can not be less the 250.00'); 
    } 
}); 
0

this объект.

jQuery(function ($) { 
    $(".min_value").change(function(){ 
     var min_value = $(this).val(); 
     if(min_value <= 250){ 
      $(this).val('250.00'); 
      alert('The Minimum Value can not be less the 250.00'); 
     } 
    }); 
}); 
Смежные вопросы