Показать сообщение отдельно
  #2 (permalink)  
Старый 26.02.2016, 11:44
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

ArsenInvoker,
Нормально работает, если начальное значение input_val > quantity.
Если же начальное значение, например 0, и мы несколько раз жмем +, то получаем ряд значений:
0 3 6 9 12 10
12 появляется из-за того, что наращивание производится после проверки input_val, и результат не проверяется.
Надо добавить проверку результата после наращивания
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>demo</title>
  <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
  <script type="text/javascript">
    $(document).ready(function () {
        $('.my_plus').click(function () {

            var quantity = $(this).parent().parent().find('#quant').html();
            var min_quan = $(this).parent().parent().find('#min_quan').html();
            var input_val = $(this).parent().find('.quant').val();
            var input = $(this).parent().find('.quant');

            if (Number(quantity) > Number(input_val)) {
                input.val(Number(input_val) + Number(min_quan));
                
            }
            if (Number(quantity) < Number(input_val) || Number(quantity) < input.val() ) {
                input.val(Number(quantity));
            }
        });
    });
</script>
</head>
<body>
   <div>
      <div>
         <div id="quant">10</div>
         <div id="min_quan">3</div> 
         <div>
               <td><input class="quant" type="text" value="0" /></td> 
               <span class="my_plus">+</span>
         </div>
      </div>
   </div>
</body>
</html>

Какой-то странный у вас тег td без table и tr, но и он не мешает

Последний раз редактировалось Dilettante_Pro, 26.02.2016 в 15:10.
Ответить с цитированием