这可能吗?只允许你选择4个对象,不使用javascript或php(或者你使用的serrver边语)?
如果我有类似的东西:
<select multiple>
<option>cat</option>
<option>hat</option>
<option>sat</option>
<option>fat</option>
<option>brat</option>
</select>
我可以对它加以限制并说只能选择其中的4个吗?这是size=4
派上用场的地方吗?
这是不重复
答案 0 :(得分:0)
不,如果不使用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:
<select multiple data-max="4">
此外,您应该实现服务器端验证。假设这个HTML:
<select multiple name="test[]">
您可以使用此PHP:
$_POST['test'] = array_slice($_POST['test'],0,4); // adjust the 4 to whatever limit