Если условие не работает для всех значений td? - PullRequest
0 голосов
/ 07 августа 2020

Я работаю с таблицей html, когда я устанавливаю флажок, я хочу сравнивать значения td в каждом tr, это условие отлично работает для 1-го tr из 2-го tr, условие не работает. HTML Код -

<form role="form" name="conForm" id="conForm">
                    <span id="error" class="text-danger"></span>
                    <div class="table-responsive">
                        <table id="myPTable" class="table table-xss table-hover table-bordered">
                        <thead>
                        <tr>
                        <th><input class="checkall" type="checkbox" name="productcheckbox"> All</</th>
                        <th class="control-label paddingtop">SI No</th>
                        <th class="control-label paddingtop">Products</th>
                        <th class="control-label paddingtop">Pending Qty</th>
                        <th class="control-label paddingtop">Quantity</th>
                        <th class="control-label paddingtop">Amount</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr>
                        <td><input class="checkbox checkproduct" type="checkbox" name="check"></td>
                        <td>1</td>
                        <td>HMIS HMIS HMIS HMIS</td>
                        <td class="availableQty">10</td>
                        <td><input  type="number" name="select[]" class="enterQty" value="10" style="width:50px;"></td>
                        <td>3000</td>
                        </tr>
                        <tr>
                        <td><input class="checkbox checkproduct" type="checkbox" name="check"></td>
                        <td>2</td>
                        <td>ERP</td>
                        <td class="availableQty">1</td>
                        <td><input  type="number" name="select[]" class="enterQty" value="1" style="width:50px;" ></td>
                        <td>9000</td>
                        </tr>
                        <tr>
                        <td><input class="checkbox checkproduct" type="checkbox" name="check"></td>
                        <td>3</td>
                        <td>Inventory</td>
                        <td class="availableQty">10</td>
                        <td><input  type="number" name="select[]" class="enterQty" value="10" style="width:50px;"></td>
                        <td>13000</td>
                        </tr>
                        <tr><td><button class="btn-info">Save</button></td></tr>
                        </tbody>
            </table>
            </form>

Вот код jquery -

$(".btn-info").on("click",function(){
               
                var check = $('.checkproduct');              
                  if(check.is(':checked')){
                      
                      var pending="";
                      $('#myPTable tr').each(function() {
                        pending += $(this).find(".availableQty").html();    
                        console.log(pending);
                      });
                
                      var enterqty ="";
                      $('#myPTable tr').each(function() {
                        enterqty += $(this).find(".enterQty").val();
                        console.log(enterqty);
                      });

                      if(enterqty > pending){
                          $("#error").html("<p>Quantity must be less than or equal to Pending Qty</p>");                          
                      }else if(enterqty== 0){
                          $("#error").html("<p>you have checked the product please enter quantity</p>");
                        }
                              else{                          
                        var checked = $('.checkproduct:checked').size();
                      }

jquery то, что я написал, работает только для первой строки, но это должно быть работайте над каждой работой, которая будет проверяться. теперь только вы, ребята, можете мне помочь, заранее спасибо.

1 Ответ

2 голосов
/ 07 августа 2020

Я немного изменил ваш код, но я считаю, что это то, что вы хотите.

$(".btn-info").on("click", function() {
  var pending =0;
  var enterqty=0;
  $('#myPTable .checkproduct:checked').each(function() {
    pending += (+$(this).closest('tr').find(".availableQty").text());
    enterqty += (+$(this).closest('tr').find(".enterQty").val());
  });

  if (enterqty > pending) {
    $("#error").html("<p>Quantity must be less than or equal to Pending Qty</p>");
  } else if (enterqty == 0) {
    $("#error").html("<p>you have checked the product please enter quantity</p>");
  } else {
    //var checked = $('.checkproduct:checked').size();
  }
});

Демо

$(".btn-info").on("click", function() {
  var pending =0;
  var enterqty=0;
  $('#myPTable .checkproduct:checked').each(function() {
    pending += (+$(this).closest('tr').find(".availableQty").text());
    enterqty += (+$(this).closest('tr').find(".enterQty").val());
  });

  if (enterqty > pending) {
    $("#error").html("<p>Quantity must be less than or equal to Pending Qty</p>");
  } else if (enterqty == 0) {
    $("#error").html("<p>you have checked the product please enter quantity</p>");
  } else {
    //var checked = $('.checkproduct:checked').size();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form role="form" name="conForm" id="conForm">
  <span id="error" class="text-danger"></span>
  <div class="table-responsive">
    <table id="myPTable" class="table table-xss table-hover table-bordered">
      <thead>
        <tr>
          <th><input class="checkall" type="checkbox" name="productcheckbox"> All</</th>
            <th class="control-label paddingtop">SI No</th>
            <th class="control-label paddingtop">Products</th>
            <th class="control-label paddingtop">Pending Qty</th>
            <th class="control-label paddingtop">Quantity</th>
            <th class="control-label paddingtop">Amount</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><input class="checkbox checkproduct" type="checkbox" name="check"></td>
          <td>1</td>
          <td>HMIS HMIS HMIS HMIS</td>
          <td class="availableQty">10</td>
          <td><input type="number" name="select[]" class="enterQty" value="10" style="width:50px;"></td>
          <td>3000</td>
        </tr>
        <tr>
          <td><input class="checkbox checkproduct" type="checkbox" name="check"></td>
          <td>2</td>
          <td>ERP</td>
          <td class="availableQty">1</td>
          <td><input type="number" name="select[]" class="enterQty" value="1" style="width:50px;"></td>
          <td>9000</td>
        </tr>
        <tr>
          <td><input class="checkbox checkproduct" type="checkbox" name="check"></td>
          <td>3</td>
          <td>Inventory</td>
          <td class="availableQty">10</td>
          <td><input type="number" name="select[]" class="enterQty" value="12" style="width:50px;"></td>
          <td>13000</td>
        </tr>
        <tr>
          <td><button type="button" class="btn-info">Save</button></td>
        </tr>
      </tbody>
    </table>
...