-2

I append HTML form with jquery append function but when I click on submit button it doesn't submit

$( "body" ).on( "click", "#addPackage", function() {
    packageId = 'package'+ id;
    id = id+1;
  $('.table tbody').append('<tr id="' + packageId + '"> <form class="" onsubmit="editPackage();return false;" method="post"><td><input type="text" name="package_name" value="" /></td><td><input type="text" name="package_price" value="" /></td><td><input type="text" name="package_details" value="" /></td><td><button class="btn btn-success" ><i class="fa fa-save"></i></button> <span class="btn btn-danger remove-btn"><i class="fa fa-remove"></i></span></td></form></tr>');
});
user3725280
  • 127
  • 1
  • 10

1 Answers1

0

This is what you probably want, instead of use <form> (which only execute function editPackage) in <tr> (and it is incorrect was what mentioned in Justinas comment ) you can execute editPackage after click on row-button and read data fro row in this way (i remove <form> from your append string and change <button>):

let id=0;
$( "body" ).on( "click", "#addPackage", function() {
    packageId = 'package'+ id;
    id = id+1;
    //console.log($('.table tbody'));
  $('.table tbody').append('<tr id="' + packageId + '"> <td><input type="text" name="package_name" value="" /></td><td><input type="text" name="package_price" value="" /></td><td><input type="text" name="package_details" value="" /></td><td><button class="btn btn-success" onclick="editPackage(this)">submit<i class="fa fa-save"></i></button> <span class="btn btn-danger remove-btn"><i class="fa fa-remove"></i></span></td></tr>');
});

function editPackage(btn) {
  let tds =btn.parentNode.parentNode.children
  let v1=tds[0].children[0].value;
  let v2=tds[1].children[0].value;
  let v3=tds[2].children[0].value;
  console.log('submit', v1, v2, v3);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button id="addPackage">add</button>
<table class="table"><tbody></tbody><table>
Kamil Kiełczewski
  • 85,173
  • 29
  • 368
  • 345