0

hello im newbie at javascript and jquery. i want to make a dynamical textbox using javascript which can add and remove a row. when i press add button, it works well. but when i pressed delete, it deleted all my table.

here is my javascript function and my php code:

<script type="text/javascript">
    function addProg(){

            document.getElementById("add_prog").innerHTML += "<tr><td><input type='date' class='form-control' name='tanggal[]'></td><td><input type='number' class='form-control' name='kuota[]'></td><td><input type='time' class='form-control' name='jam_mulai[]'></td><td><input type='button' class='btn btn-danger' onclick='hapus()' value='Hapus'></tr>";
    }

    function hapus() 
    {
        var x = document.getElementById("add_prog");
        x.remove(x.tr);
    }
</script>
<div class="container">    
        <center><h3>Form Pendaftaran 
        </h3><center><br>
            <table class="table table-bordered">
            <thead><tr>
            <td> a </td>
            <td> b </td>
            <td> c </td>
            </tr></thead>

            <tbody id="add_prog">

            <tr id="1">
            <td><input type="date" class="form-control" name="tanggal[]"></td>
            <td><input type="number" class="form-control" name="kuota[]"></td>
            <td><input type="time" class="form-control" name="jam_mulai[]"></td>
            <td><input type="button" class="btn btn-danger" onclick="hapus()" value="Hapus"></td>
            </tr>

            </tbody>
            </table>

            <input type="button" class="btn btn-default" onclick="addProg()" value="Tambah">

i dont know how to delete spesific index that i want to deleted and write it in my script. can someone just please tell me how to do it?

2 Answers 2

1

Use element.parentNode.parentNode.remove(); to remove element as you will have to find the tr element with respective clicked button

Try this:

function addProg() {

  document.getElementById("add_prog").innerHTML += "<tr><td><input type='date' class='form-control' name='tanggal[]'></td><td><input type='number' class='form-control' name='kuota[]'></td><td><input type='time' class='form-control' name='jam_mulai[]'></td><td><input type='button' class='btn btn-danger' onclick='hapus(this)' value='Hapus'></tr>";
}

function hapus(element) {
  element.parentNode.parentNode.remove(); //document.getElementById('add_prog').removeChild(element.parentNode.parentNode);
}
<div class="container">
  <center>
    <h3>Form Pendaftaran 
        </h3>
    <center>
      <br>
      <table class="table table-bordered">
        <thead>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
        </thead>

        <tbody id="add_prog">

          <tr id="1">
            <td>
              <input type="date" class="form-control" name="tanggal[]">
            </td>
            <td>
              <input type="number" class="form-control" name="kuota[]">
            </td>
            <td>
              <input type="time" class="form-control" name="jam_mulai[]">
            </td>
            <td>
              <input type="button" class="btn btn-danger" onclick="hapus(this)" value="Hapus">
            </td>
          </tr>

        </tbody>
      </table>

      <input type="button" class="btn btn-default" onclick="addProg()" value="Tambah">

Sign up to request clarification or add additional context in comments.

Comments

0

I think what you're looking to delete is the lastChild of your tbody element.

Here's some info on lastChild.

2 Comments

i don't think so, i think i need find my row's index. i got the answer before. thanks for helping btw :)
@JulianaSucahya Sorry, I thought you wanted to delete last row only. Glad you got a good answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.