JQuery предотвратить удаление каждой строки таблицы - PullRequest
0 голосов
/ 18 апреля 2011

Строки таблицы могут быть добавлены или удалены. Я установил подтверждение, чтобы предупредить пользователя, если он пытается удалить свою собственную строку (первая строка, которая загружается из базы данных); если они настраивают это для кого-то другого, им, возможно, придется сделать это. Вторая строка (class = leaderrow) пуста, и эта строка-лидер является тем, что клонируется при нажатии кнопки addRow.

Как я могу предотвратить (или, по крайней мере, предупредить), что пользователь удаляет все лидеры в таблице? Если все лидеры удалены, кнопка добавления не работает.

Вот jQuery:

$("a.self").live('click', function(){
   go=confirm('After saving you will lose the ability to edit this organization. Continue to remove yourself?')
    if(go){
       $(this).parent().parent().remove();
    }
    return false; // prevent link to jump to a page.
});


$("a.remove").live('click', function(){
   $(this).parents('tr').remove();
   return false; // prevent link to jump to a page.
});

Вот таблица, которая является частью формы:

<table width="100%" border="0" class="unsorted_table">
  <thead>   
      <tr>
           <th>Name*</th>
           <th>Action</th>
      </tr>
  </thead>
  <tbody id="entries">
      <tr>
            <td>User's own name</td>
            <td><a href="" name="delete_row[]" class="remove self">remove</a></td>
      </tr>
      <tr class="leaderrow">
            <td><select name="leaderid[]" >
              <option value="3">Sue</option>
              <option value="4">Jeannie</option>
              <option value="5">Kerry</option>
              <option value="6">Travis</option>
               </select>
            </td>
            <td><a href="" name="delete_row[]" class="remove">remove</a></td>
       </tr>
    </tbody>
    <tfoot>
       <tr> 
            <td><p><input type="button" id="addRow" value="Add Another" /></p></td>
       </tr>
    </tfoot>
</table>

1 Ответ

2 голосов
/ 18 апреля 2011
$("a.remove").live('click', function(){
   if($(this).parents('tr').siblings().size() > 1)
       $(this).parents('tr').remove();
   else
       alert('cant remove');
   return false; // prevent link to jump to a page.
});

(непроверенный код, но вы поняли)

...