2013-05-15 52 views
0

這可能嗎?只允許你選擇4個對象,使用javascript或php(或者你使用過的serrver side language)?<select multiple>僅適用於4個對象

,如果我有這樣的事情:

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

我可以把它的限制,並說只有4個可以選擇的?這是size=4會派上用場嗎?

重複

+0

我想不出任何HTML代碼,此動作不JS或PHP。 – vasanth

+0

使用jquery最簡單的方法是什麼? @ user927258 – TheWebs

回答

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 
相關問題