Html <;选择多个>;仅适用于4个对象

Html <;选择多个>;仅适用于4个对象,html,selection,Html,Selection,这可能吗?只允许您选择4个对象,而不使用javascript或php(或您使用的服务器端语言) 如果我有这样的东西: <select multiple> <option>cat</option> <option>hat</option> <option>sat</option> <option>fat</option> <option>b

这可能吗?只允许您选择4个对象,而不使用javascript或php(或您使用的服务器端语言)

如果我有这样的东西:

<select multiple>
    <option>cat</option>
    <option>hat</option>
    <option>sat</option>
    <option>fat</option>
    <option>brat</option>
</select>

猫
帽子
坐
脂肪
顽童
我能不能限制一下,只选其中4个?这就是
size=4
能派上用场的地方吗


这不是重复的

不,如果不使用JavaScript,就无法强制执行这样的限制。类似这样的方法可能会奏效:

func = function(e) {
    e|e=window.event;
    var t = e.srcElement || e.target;
    if( !t.tagName) t = t.parentNode;
    if( t.tagName.toLowerCase() == "select" && t.hasAttribute("multiple") && t.hasAttribute("data-max")) {
        var o = t.options, l = o.length, i, m = +t.getAttribute("data-max");
        for( i=0; i<l; i++) {
            if( o[i].selected) {
                if(m>0) m--;
                else o[i].selected = false;
            }
        }
    }
};
if( document.body.addEventListener) document.body.addEventListener("change",func,false);
else document.body.attachEvent("onchange",func);

我想不出任何html代码在没有js或php的情况下可以做到这一点。使用jquery最简单的方法是什么@用户927258
<select multiple data-max="4">
<select multiple name="test[]">
$_POST['test'] = array_slice($_POST['test'],0,4); // adjust the 4 to whatever limit