Reputation: 12294
$('#remove').click(function() {
var foo = [];
$('#FeatureLists :selected').each(function(i, selected) {
foo[i] = $(selected).text();
alert(foo[i]);
if (foo[i] != "Add" )
return !$('#FeatureLists option:selected').remove();
if (foo[i] != "Edit")
return !$('#FeatureLists option:selected').remove();
});
});
i have six items in my select in which 4 of them are add,edit ,delete view, it is multiselect list, i don't want the user to remove the these 4 items , apart from that they can remove any item. how will i do that? it is not happening in the above code
Upvotes: 1
Views: 2019
Reputation: 288
Try this as well. Simple one line code and slightly faster
$(document).ready(function() {
$("input").click(function(event) {
var foo = [];
$('#FeatureLists :selected').each(function(i, selected) {
foo[i] = $(selected).text();
if (foo[i] != "Add" && foo[i] != "Edit" && foo[i] != "Delete" && foo[i] != "View") return $(selected).remove();
});
});
});
Upvotes: 1
Reputation: 51468
First of all, based on your sample code, the array foo
is does not appear to be needed. Secondly, the if statement needs to include all the items that need to be excluded with OR
conditions as shown below:
if (foo[i] == "Add" ||
foo[i] == "Edit" ||
foo[i] == "Delete" ||
foo[i] == "View")
{
return;
}
else
{
$(selected).remove();
}
Upvotes: 2