Дубликаты пользователей(записей) не следует добавлять в таблицу

#javascript #jquery #asp.net #asp.net-mvc #asp.net-mvc-4

#язык JavaScript #jquery #asp.net #asp.net-mvc #asp.net-mvc-4

Вопрос:

Я столкнулся с проблемой. у меня есть выпадающий список, содержащий список пользователей, извлекаемых из базы данных. Когда я выбираю пользователя из выпадающего списка, он добавляется в нижеприведенную таблицу, а когда я снова выбираю того же пользователя, он снова добавляется в нижеприведенную таблицу в качестве новой строки. Поэтому я хочу прекратить дублировать одного и того же пользователя в таблице.

Вот мой код просмотра

 lt;div class="form-group col-md-4 " style="display:none" id="user-container"gt;  lt;labelgt;Userlt;/labelgt;  lt;select id="users" class="form-control" disabled="disabled"gt;  lt;option value=""gt;Select Userlt;/optiongt;  lt;/selectgt;  lt;p class="validate-error"gt;lt;span id="users_error"gt;lt;/spangt;lt;/pgt;  lt;/divgt;  

Вот мой код JavaScript

 PostMyData(obj, '/Admin/Meetings/GetUserGroupUsers', (res) =gt; {    if (res.Code === 0 || res.Code === -1) {  alert(res.Message);  }  if (res.Code === 1) {    $('#users').html('');    $('#users').append('lt;option value=""gt;Select Userlt;/optiongt;');    res.Data.map(item =gt; {  $('#users').append(`lt;option value="${item.UserId}"gt;${item.FirstName} ${item.LastName}lt;/optiongt;`);  });    $('#users').prop('disabled', false);  }  

Комментарии:

1. Где этот столик?

Ответ №1:

Я думаю, что динамическое предоставление идентификатора сделает эту работу.Допустим, вы даете идентификатор на основе значения идентификатора, тогда вы можете легко определить, выходит ли тот же идентификатор или нет.

 PostMyData(obj, '/Admin/Meetings/GetUserGroupUsers', (res) =gt; {  users = document.getElementById("users");  if (res.Code === 0 || res.Code === -1) {  alert(res.Message);  }  if (res.Code === 1) {    users.html('');    users.append('lt;option value=""gt;Select Userlt;/optiongt;');    res.Data.map(item =gt; {  if(!users.querySelector(item.UserId))  users.append(`lt;option value="${item.UserId}" id="${item.UserId}"gt;${item.FirstName} ${item.LastName}lt;/optiongt;`);  });    users.prop('disabled', false);  } 

Ответ №2:

Я не знаю, что вы подразумеваете под дублированием одного и того же пользователя в таблице, если вы имеете в виду, что хотите предотвратить дублирование пользователя в раскрывающемся списке, вы можете попробовать этот код, если нет, пожалуйста, предоставьте более подробную информацию о таблице, над которой вы работаете.

 ...  const usersList= $('#users');  res.Data.forEach(item =gt; {  if(usersList.find(`option[value=${item.UserId}]`).length gt; 0){  return ; // do nothing  }  usersList.append(`lt;option value="${item.UserId}"gt;${item.FirstName} ${item.LastName}lt;/optiongt;`); }); ...