views:

76

answers:

2
 $('#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

+1  A: 

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();
}
Jose Basilio
+1  A: 

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();
            });
         });
      });
Naren