Lets say you have a select box and you want to limit the amount options that can be selected. And lets say you want to do that with jQuery. Here is how:
The first thing to keep in mind is that you cant use onClick() here (aka $.click()), as selecting more than one items doesn't fire a click event. Instead, we will use $.change().
var maxSelected = 2; $('select[name=selectTest]').change(function(e){ if ($(this).val().length > maxSelected) { alert('You cannot have more than ' + maxSelected + ' items selected'); } });
This will alert the user if they try to select more than maxSelected of items - in this case two. However, there selection will still be valid! What we need is to get the last item they selected - and to de-select it. Luckily, that item is passed in the event property (e) as e.currentTarget.value, so we can just use that property to unset the last selected item:
var maxSelected = 2; $('select[name=selectTest]').change(function(e){ if ($(this).val().length > maxSelected) { alert('You cannot have more than ' + maxSelected + ' items selected'); $('select[name=selectTest] option[value=' + e.currentTarget.value + ']') .attr('selected', false) } });
Happy coding!