как проверить значение в каждом цикле по классам на основе базы данных с помощью jquery

#javascript #php #jquery

#javascript #php #jquery

Вопрос:

допустим, у меня есть форма для Quantity ввода с помощью class txt-qty , и это будет цикл, основанный на данных из базы данных.

Чем я хочу, пытаясь проверить значение количества, не должно быть 0 , но если одно из значений больше, чем 0 оно будет true

это мой код, который я пробовал :

 <script type="text/javascript">
$(document).ready(function(){
    var input_qty = false;
    $('#checkout').submit(function(e){
        e.preventDefault();
       var qty =  $('.txt-qty').each(function(){
           $(this).val();
       });
         if(qty > 0){
           input_qty = true; 
         }else{
           input_qty = false;
         }
         if(input_qty == false){
           alert('You must input one of quantity from the menu list');
         }else{
            this.submit();
         }

      });
   });
</script>
  

в моем скрипте, если я предупреждаю qty , это будет возврат [object],[object] .

ребята, вы можете мне помочь, как проверить, что одно из значений количества не должно быть 0 ?

Комментарии:

1. Непонятно, о чем вы спрашиваете. Вы хотите сказать, что хотя бы одно из .txt-qty полей должно иметь значение> 0?

Ответ №1:

Если цель состоит в том, чтобы проверить, что хотя бы одно из .txt-qty полей имеет значение> 0, то вы можете использовать get() для получения истинного массива из вашего объекта jQuery, а затем Array#some посмотреть, равно ли значение какого-либо поля> 0:

 $(document).ready(function() {
    $('#checkout').submit(function(e) {
        e.preventDefault();
        if (!$('.txt-qty').get().some(function(e) { return $(e).val() > 0; })) {
        // Gets array ---^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        //                       | Checks for at least one with a value > 0
            alert('You must input one of quantity from the menu list');
        } else {
            this.submit();
        }
    });
});
  

Это основано на неявном преобразовании строкового значения в число; вы можете рассмотреть возможность использования parseInt вместо этого.

Ответ №2:

 <!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
 $('#checkout').click(function(e){
 e.preventDefault();
       var qty =[];
        $('.txt-qty').each(function(){

           if(parseInt($(this).val(),10) <= 0 )
                {
               qty.push($(this).val());
               }
       });

         if(qty.length > 0){  // check this
           input_qty = true; 
         }else{
           input_qty = false;
         }
         if(input_qty == true){
           alert('You must input one of quantity from the menu list');
         }else{
            this.submit();
         } 


      });
});
</script>
</head>
<body>
 <input type='text' class='txt-qty' />
 <input type='text' class='txt-qty' />
 <input type='text' class='txt-qty' />
 <input type='text' class='txt-qty' />
 <input type='text' class='txt-qty' />
 <input type='text' class='txt-qty' />

<input type='submit' id='checkout'/>
    </body>


</body>
</html>