沒有,有沒有辦法執行,而不使用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
我想不出任何HTML代碼,此動作不JS或PHP。 – vasanth
使用jquery最簡單的方法是什麼? @ user927258 – TheWebs