Appended new row is not behaving like previous one (row)

前端 未结 3 1313
日久生厌
日久生厌 2020-11-30 15:09

I have a HTML table in side which i have several td as input field,my table is dynamic, when page loads i am appending the 1st row of my table and

3条回答
  •  再見小時候
    2020-11-30 15:50

    You can assign the element selector target in this case markup. You have to add the listener again after you create a new DOM element.

    function rowappend() // this one is appending row
    {
      var markup = $('' +
        '' +
        '' +
        '' +
        '' +
        '' +
        '' +
        '' +
        '');
        
      $("table tbody").append(markup);
      $("#itemNametd",markup).focus();
    }
    rowappend()
    
    
    var data = [ //data to populate Item Name search input field
      {
        "ItemName": "Butter"
      },
      {
        "ItemName": "Rice"
      },
      {
        "ItemName": "Milk"
      },
      {
        "ItemName": "Ice Cream"
      },
      {
        "ItemName": "Curd"
      }
    ]
    var data1 = [{ // this data will be dynamic but for now to test i am using this single data
      "ItemName": "Butter",
      "ItemCode": 400564,
      "PurRate": 8,
      "DiscAmt": 6,
      "gstPercentage": 35,
      "gstAmt": 5
    }]
    var totalAmount = "";
    var unitQuantity = "";
    $(function() {
      let itemName = data.map(value => { //using autocomplete to for searching input field
    
        return value.ItemName;
      });
      $("#itemNametd").autocomplete({
        source: itemName
      });
    });
    $("#itemNametd").focusout(function() { //when user focus out from Item Name doing this
    
      data1.map(value => {
        $("#itemCodetd").text(value.ItemCode);
        $("#purRatetd").text(value.PurRate);
        $("#discAmttd").text(value.DiscAmt);
        $("#gstPercentahgetd").text(value.gstPercentage);
        $("#gstAmttd").text(value.gstAmt);
    
      });
    
    });
    $("#unitQtytd").focusout(function() { //when user focus out Unit Qty doing some calculation
      unitQuantity = $("#unitQtytd").val();
      purchaseRate = $("#purRatetd").text();
      totalAmount = (parseInt(unitQuantity) * parseInt(purchaseRate));
      $("#totalAmttd").text(totalAmount);
    
    });
    
        $('body').on('focusout','#discPercentagetd', function(){
          rowappend()
    });
    
    
    
    
    
    
    Item Name Item Code Unit Qty Pur.Rate Disc% Disc Amt Gst% Gst Amt Total Amount

提交回复
热议问题