2013-02-19 145 views
0

我想說我很少使用JavaScript。這從來不是我的事,也可能永遠不會,所以我很抱歉我對這門語言缺乏認識。這就是爲什麼我的問題如此恥辱。只允許檢查2個複選框

我發現這個代碼在網上:

function checkboxlimit(checkgroup, limit){ 
    var checkgroup=checkgroup 
    var limit=limit 
    for (var i=0; i<checkgroup.length; i++){ 
     checkgroup[i].onclick=function(){ 
     var checkedcount=0 
     for (var i=0; i<checkgroup.length; i++) 
      checkedcount+=(checkgroup[i].checked)? 1 : 0 
     if (checkedcount>limit){ 
      alert("You can check a maximum of "+limit+" boxes.") 
      this.checked=false 
      } 
     } 
    } 
} 

<script type="text/javascript"> 
    checkboxlimit(document.forms.checkform.weapon[], 2) 
</script> 

它看起來非常基本的給我。這裏沒什麼特別的。 但是,我的問題是,我試圖通過名稱weapon []找到複選框,我需要輸出多個複選框作爲數組的武器[]。 現在我的問題是,我將如何使這個愚蠢的小錯誤的工作。

總結: 我的問題是我的複選框被命名爲weapon [](name =「weapon []」)而不是(name =「weapon」),因此js不會識別它。

+2

哪裏jQuery的? – Blender 2013-02-19 21:28:45

+0

編輯過! sry – Mathias 2013-02-19 21:30:38

+0

那麼你的問題是什麼,你想達到什麼目的?如果我沒有弄錯,你想確保在 – Dynamikus 2013-02-19 21:34:13

回答

1

使用點符號時,不能使用[]。切換到像關聯數組一樣處理它。

checkboxlimit(document.forms.checkform['weapon[]'], 2) 

http://jsfiddle.net/4mYbD/3/

作品就好了。

此外,您不需要重新定義checkgrouplimit。你可以用它們作爲參數。

+0

http://jsfiddle.net/4mYbD/1/ 不,它不 - 我的複選框的名稱是武器[],因爲我在數組中使用它們。 – Mathias 2013-02-19 21:38:01

+0

現在更新了,我用'name =「武器[]」'看到你的html「'' – idrumgood 2013-02-19 21:41:07

+0

非常感謝=)這就是我正在尋找的 – Mathias 2013-02-19 21:48:48

2

你在找這樣的事嗎?

$(':checkbox[name=weapon]').on('click',function(){ 

    var checkedBoxlength=$(':checkbox[name=weapon]:checked').length; 
    if(checkedBoxlength>2){ 
     alert('You can check a maximum of 2 boxes.'); 
     return false; 
    } 
}); 

http://jsfiddle.net/umqL3/2/

---編輯

剛剛作出了一個jQuery插件只是限制你多少chekboxes檢查。

Link

+0

你可以使它像通用一樣。 – Dynamikus 2013-02-19 21:41:50

+0

1)你不能只是添加jQuery,並假設沒關係。 2)您已經取消了定義多少複選框可用的功能 3)您已經取消了定義哪些複選框受到影響的功能。 – idrumgood 2013-02-19 21:49:26

+0

我正在爲此編寫一個插件。等幾分鐘。我知道它不是通用的。 – Dynamikus 2013-02-19 21:50:17

相關問題