$("#selUser").bind('change keyup', function() {
$('#selSubjects2').empty();
if($(this).val().length > 0)
$.each( $(this).val().split(','), function(i, val) {
var option = new Option(val, val);
option.selected = true;
console.log("option",option);
$('#selSubjects2').append(option);
});
$('#selSubjects2').trigger("change");
});
我正在尝试使用空方法从 selsubjects2 中删除选项。 从
SelUser
下拉列表中选择新用户时,我想使用 selSubjects2
方法清除 empty
中的所有选项。
目前,在为 User1 选择权限后,如果我为 User2 选择权限,则会将这些新权限附加到 User1 的现有选项中。目标是完全删除 User1 的权限,然后用 User2 的权限填充
selSubjects2
。这可确保仅显示当前所选用户的权限,从而完全删除先前用户的权限。
如何完全去掉user1的权限然后追加user2的权限?
要解决此问题,您需要在正确的元素上使用
.empty()
方法。您应该引用 $(this)
,而不是引用 $('#selSubjects2')
(它指的是当前元素(可能是 selUser)),因为那是您要清除的元素。此外,您应该将代码包装在更改事件处理程序中,以便它仅在 selUser 的值更改时运行。以下是如何实施的示例:
$("#selUser").on('change', function() {
// Clear the options in selSubjects2
$('#selSubjects2').empty();
// Get the selected value from selUser
var selectedUser = $(this).val();
// If there is a selected user
if(selectedUser){
// Split the selected user's permissions into an array
var permissions = selectedUser.split(',');
// For each permission, append it as an option to selSubjects2
$.each( permissions, function(i, permission) {
var option = new Option(permission, permission);
option.selected = true;
$('#selSubjects2').append(option);
});
// Trigger the change event on selSubjects2 to update its selected options
$('#selSubjects2').trigger("change");
}
});