diff --git a/include/staff/department.inc.php b/include/staff/department.inc.php
index 63e0c8a22880171737c9f1ab5997db25df4ba34f..3a08962282b3d22df768c5aac3980de4b9aff122 100644
--- a/include/staff/department.inc.php
+++ b/include/staff/department.inc.php
@@ -391,26 +391,27 @@ var addAccess = function(staffid, name, role, alerts, primary, error) {
   copy.removeClass('hidden')
   if (error)
       $('<div class="error">').text(error).appendTo(copy.find('td:last'));
+  copy.find('.drop-membership').click(function() {
+    $('#add_access').append(
+      $('<option>')
+      .attr('value', copy.find('input[name^=members][type=hidden]').val())
+      .text(copy.find('td:first').text())
+    );
+    copy.fadeOut(function() { $(this).remove(); });
+    return false;
+  });
 };
 
 $('#add_extended_access').find('button').on('click', function() {
-  var selected = $('#add_access').find(':selected');
-  addAccess(selected.val(), selected.text(), 0, true);
+  var selected = $('#add_access').find(':selected'),
+      id = parseInt(selected.val());
+  if (!id)
+    return;
+  addAccess(id, selected.text(), 0, true);
   selected.remove();
   return false;
 });
 
-$(document).on('click', 'a.drop-membership', function() {
-  var tr = $(this).closest('tr');
-  $('#add_access').append(
-    $('<option>')
-    .attr('value', tr.find('input[name^=members][type=hidden]').val())
-    .text(tr.find('td:first').text())
-  );
-  tr.fadeOut(function() { $(this).remove(); });
-  return false;
-});
-
 <?php
 if ($dept) {
     $members = $dept->members->all();
diff --git a/include/staff/staff.inc.php b/include/staff/staff.inc.php
index 3feb6054090b8436a698a876095d5b469ebae8af..6b46bc48a24d7ac234a2930f85ae49bbcc2936e7 100644
--- a/include/staff/staff.inc.php
+++ b/include/staff/staff.inc.php
@@ -425,26 +425,27 @@ var addAccess = function(daid, name, role, alerts, error) {
   copy.removeClass('hidden')
   if (error)
       $('<div class="error">').text(error).appendTo(copy.find('td:last'));
+  copy.find('a.drop-access').click(function() {
+    $('#add_access').append(
+      $('<option>')
+        .attr('value', copy.find('input[name^=dept_access][type=hidden]').val())
+        .text(copy.find('td:first').text())
+    );
+    copy.fadeOut(function() { $(this).remove(); });
+    return false;
+  });
 };
 
 $('#add_extended_access').find('button').on('click', function() {
-  var selected = $('#add_access').find(':selected');
-  addAccess(selected.val(), selected.text(), 0, true);
+  var selected = $('#add_access').find(':selected'),
+      id = parseInt(selected.val());
+  if (!id)
+      return;
+  addAccess(id, selected.text(), 0, true);
   selected.remove();
   return false;
 });
 
-$(document).on('click', 'a.drop-access', function() {
-  var tr = $(this).closest('tr');
-  $('#add_access').append(
-    $('<option>')
-    .attr('value', tr.find('input[name^=dept_access][type=hidden]').val())
-    .text(tr.find('td:first').text())
-  );
-  tr.fadeOut(function() { $(this).remove(); });
-  return false;
-});
-
 var joinTeam = function(teamid, name, alerts, error) {
   if (!teamid) return;
   var copy = $('#team_member_template').clone();
@@ -460,15 +461,28 @@ var joinTeam = function(teamid, name, alerts, error) {
   copy.removeClass('hidden');
   if (error)
       $('<div class="error">').text(error).appendTo(copy.find('td:last'));
+  copy.find('a.drop-membership').click(function() {
+    $('#add_team').append(
+      $('<option>')
+        .attr('value', copy.find('input[name^=teams][type=hidden]').val())
+        .text(copy.find('td:first').text())
+    );
+    copy.fadeOut(function() { $(this).remove(); });
+    return false;
+  });
 };
 
 $('#join_team').find('button').on('click', function() {
-  var selected = $('#add_team').find(':selected');
-  joinTeam(selected.val(), selected.text(), true);
+  var selected = $('#add_team').find(':selected'),
+      id = parseInt(selected.val());
+  if (!id)
+      return;
+  joinTeam(id, selected.text(), true);
   selected.remove();
   return false;
 });
 
+
 <?php
 foreach ($staff->dept_access as $dept_access) {
   echo sprintf('addAccess(%d, %s, %d, %d, %s);', $dept_access->dept_id,
diff --git a/include/staff/team.inc.php b/include/staff/team.inc.php
index 92ad9f13dfb017b363d7ced525c53248ee80422e..e7a9a95bd652bbe18ee9255bcf2e3231a6d638be 100644
--- a/include/staff/team.inc.php
+++ b/include/staff/team.inc.php
@@ -195,8 +195,10 @@ var addMember = function(staffid, name, alerts, error) {
 
 $('#add_member').find('button').on('click', function() {
   var selected = $('#add_access').find(':selected'),
-      id = selected.val();
-  addMember(selected.val(), selected.text(), true);
+      id = parseInt(selected.val());
+  if (!id)
+    return;
+  addMember(id, selected.text(), true);
   if ($('#team-lead-select option[value='+id+']').length === 0) {
     $('#team-lead-select').find('option[data-quick-add]')
     .before(