Скрипт, запрещающий выбор более 3-х элементов (в отличие от проверки его во время отправки).
http://jsfiddle.net/v33sszgp/
var verified = [];
document.querySelector('select').onchange = function(e) {
if (this.querySelectorAll('option:checked').length <= 3) {
verified = Array.apply(null, this.querySelectorAll('option:checked'));
} else {
Array.apply(null, this.querySelectorAll('option')).forEach(function(e) {
e.selected = verified.indexOf(e) > -1;
});
}
}
Обратите внимание, что есть некоторая дополнительная сложность, связанная с предотвращением фактического выбора элемента на select
, и что он скорее проверяет действия пользователя и отменяет его, если он недействителен.