我正面临一个问题。我有一个下拉列表,包含从数据库中获取的用户列表。当我从下拉列表中选择一个用户时,它会追加到下面的表中,当我再次选择相同的用户时,它会作为新的行追加到下面的表中。所以我不想在表中复制同一个用户。
这是我的视图代码
<div class="form-group col-md-4 " style="display:none" id="user-container">
<label>User</label>
<select id="users" class="form-control" disabled="disabled">
<option value="">Select User</option>
</select>
<p class="validate-error"><span id="users_error"></span></p>
</div>
这是我的JavaScript代码
PostMyData(obj, '/Admin/Meetings/GetUserGroupUsers', (res) => {
if (res.Code === 0 || res.Code === -1) {
alert(res.Message);
}
if (res.Code === 1) {
$('#users').html('');
$('#users').append('<option value="">Select User</option>');
res.Data.map(item => {
$('#users').append(`<option value="${item.UserId}">${item.FirstName} ${item.LastName}</option>`);
});
$('#users').prop('disabled', false);
}
发布于 2021-12-09 07:55:58
我不知道复制表中的同一个用户是什么意思,如果您的意思是要防止在dropDown列表中复制用户,可以尝试使用此代码,如果不是,请提供有关您正在处理的表的更多详细信息。
...
const usersList= $('#users');
res.Data.forEach(item => {
if(usersList.find(`option[value=${item.UserId}]`).length > 0){
return ; // do nothing
}
usersList.append(`<option value="${item.UserId}">${item.FirstName} ${item.LastName}</option>`);
});
...
发布于 2021-12-09 08:02:09
我认为动态地提供一个id就可以做到这一点,job.Lets说,您是根据id值给出id,那么您可以很容易地找到相同的id是否退出。
PostMyData(obj, '/Admin/Meetings/GetUserGroupUsers', (res) => {
users = document.getElementById("users");
if (res.Code === 0 || res.Code === -1) {
alert(res.Message);
}
if (res.Code === 1) {
users.html('');
users.append('<option value="">Select User</option>');
res.Data.map(item => {
if(!users.querySelector(item.UserId))
users.append(`<option value="${item.UserId}" id="${item.UserId}">${item.FirstName} ${item.LastName}</option>`);
});
users.prop('disabled', false);
}
https://stackoverflow.com/questions/70286196
复制相似问题