www.webdeveloper.com
Results 1 to 5 of 5

Thread: How to tell button to delete current row from table

  1. #1
    Join Date
    Jul 2013
    Posts
    10

    How to tell button to delete current row from table

    Hi,

    I have an HTML table with a button to clone the first row which works fine.

    Each row contains a button that is meant to delete the current row (child).
    My problem here is that I can't find a way to tell these buttons which is the current row as I don't how to assign incrementing IDs or numbers to each row.
    I hope someone can help me with this.

    My JS:
    Code:
    <script type="text/javascript">
     $(document).ready(function()
     {  
      $('#submitForm').on('click', function()
      {
       validateNU(); 
      });
     });
     var cloneRow = (function()
     {
      var rowCount = parseInt(document.getElementById('rowID').value, 10);
     
      var table = document.getElementById("outputTable3");
      var row = document.getElementById("rowOrig");
      var clone = row.cloneNode(true);
      
      table.appendChild(clone);
      
      rowCount = isNaN(rowCount) ? 0 : rowCount;
      rowCount++;
      document.getElementById('rowID').value = rowCount;
     });
     function delRow(r)
     {
      var rowCount = document.getElementById('rowID').value;
      
      var table = document.getElementById('outputTable3');
      
      if (rowCount == 1)
      {
       bootbox.dialog("<p>This is the only row - you cannot delete it. :-)</p>",
       {
        "label": "OK",
        "class": "btn-primary font-bold",
        "data-bind": "click: cancel"
       }, 
       {
        "header": "FRiEND - Message"
       });
      }
      else
      {
       table.removeChild(table.children[2])
      }
     }
    </script>
    Thanks, Mike

  2. #2
    Join Date
    Jul 2013
    Posts
    10
    ...providing the original tbody as well to show you the TDs I am cloning:
    Code:
                        <tbody>
                            <tr id="rowOrig">
                                <td><input type="text" style="width:97%" name="url[]" onBlur="lowercaseAll(this)" /></td>
                                <td><input type="text" style="width:97%" name="email[]" onBlur="lowercaseAll(this)" /></td>
                                <td><select style="width:104%" name="policy[]">
                                        <option value="">- please select -</option>
             <?php foreach($objPoliciesCat->policyCategory as $policiesCat){ ?> 
                                        <option value="<?php echo $policiesCat; ?>" <?php if($policiesCat=="Counterfeit"){ echo "selected"; } ?>><?php echo $policiesCat; ?></option>
                                        <?php } ?> 
                                    </select></td>
                                <td><select style="width:104%" name="source[]">
                                        <option value="">- please select -</option>
                                        <option value="Attack">Attack</option>
                                        <option value="IR-OIR">IR / OIR</option>
                                        <option value="KANA" selected>KANA</option>
                                        <option value="PET">PET</option>
                                        <option value="Salesforce">Salesforce</option>
                                        <option value="Other">Other</option>
                                    </select></td>
                                <td colspan="2"><input type="text" style="width:97%" name="notes[]" /></td>
                                <td class="txtcntr"><button type="button" value="" name="del[]" title="delete row" class="btn" onClick="delRow(this)"><i class="icon-red icon-remove"></i></button></td>
                            </tr>
                        </tbody>
    Thanks, Mike

  3. #3
    Join Date
    Jun 2012
    Posts
    8
    $(this).closest('tr').remove();
    <input type="button" onClick="$(this).closest('tr').remove();">
    try this code

  4. #4
    Join Date
    Jul 2013
    Posts
    10
    Hi Mathu,

    thanks a lot for the quick reply - works perfect ! :-)

    One follow-up question on this:
    I have field ("rowID") that counts the number of rows in the table and always adds 1 to this field's value when a new row is added.

    How can I manage that when I delete a row with your code it substracts 1 from the above field's value ?

    I tried the following but this keeps the field value unchanged:
    Code:
    var rowCount = document.getElementById('rowID').value;			
    rowCount = number(rowCount) - 1;
    document.getElementById('rowID').value = rowCount;
    Thanks, Mike

  5. #5
    Join Date
    Jul 2013
    Posts
    10

    Update

    I got this figured out - thanks again.

    Mike

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles