2012-03-08 47 views
1

我有一個電子郵件列表,旁邊有一個複選框,用戶可以選擇他/她想要發送的電子郵件地址。現在我添加了另一個複選框,選中時將檢查所有其他複選框。下面是我寫的(有幫助,當然從計算器)代碼:選中所有複選框並將全部選定項存儲在全局變量中

<SCRIPT LANGUAGE="JavaScript"> 

function selectFunction (checkall,field) 
{ 
    if(checkall.checked==true){ 
     for (i = 0; i < field.length; i++) 
      field[i].checked = true ; 
    }else{ 
     for (i = 0; i < field.length; i++) 
      field[i].checked = false ; 
    } 
} 

</script> 

<form name="myform" action="profile-invite.html" method="post"> 
    <b>Your Favorite Scripts & Languages</b><br> 
    <input type="checkbox" name="list" value="1">[email protected]<br> 
    <input type="checkbox" name="list" value="2">[email protected]<br> 
    <input type="checkbox" name="list" value="3">[email protected]<br> 
    <input type="checkbox" name="list" value="4">[email protected]<br> 
    <input type="checkbox" name="list" value="5">[email protected]<br> 

    <input type="checkbox" name="selectallcb" value="Check All" 
    onClick="selectFunction(document.myform.selectallcb,document.myform.list)"> 
    <input type="submit" name="formSubmit" value="Submit" /> 

</form> 

的「全選」功能工作正常,但使用的print_r我看到的是,當點擊提交按鈕時,submited值是最後我選擇的複選框。例如,如果我點擊5-3-1-2,$ _POST的值是「2」,而不是其餘。

我意識到我的代碼只能註冊一個選中的複選框,因此只考慮最後一個複選框。

<form name="myform" action="profile-invite.html" method="post"> 
    <b>Your Favorite Scripts & Languages</b><br> 
    <input type="checkbox" name="list[]" value="1">[email protected]<br> 
    <input type="checkbox" name="list[]" value="2">[email protected]<br> 
    <input type="checkbox" name="list[]" value="3">[email protected]<br> 
    <input type="checkbox" name="list[]" value="4">[email protected]<br> 
    <input type="checkbox" name="list[]" value="5">[email protected]<br> 

    <input type="checkbox" name="selectallcb" value="Check All" 
    onClick="selectFunction(document.myform.selectallcb,document.myform.list)"> 
    <input type="submit" name="formSubmit" value="Submit" /> 

</form> 

現在,它會註冊多個選擇時,我用的print_r檢查(如果我點擊5-3-1-2,值:所以我通過添加[]複選框的名字背後改寫了代碼在$ _POST現在是[0] => 5,[1] => 3,[2] => 1,[3] => 2。)

但是「select all」複選框不起作用。我假設是由於[]將場轉換爲數組。我嘗試了各種方法(通過用「document.myform.list」替換「document.myform.list」等)。目前還沒有工作,我會繼續嘗試,但如果任何人對如何合併2碼以上請幫助。

謝謝

回答

1

更改此:

onClick="selectFunction(document.myform.selectallcb,document.myform.list)" 

這樣:

onClick="selectFunction(document.myform.selectallcb,document.myform['list[]'])" 

這裏的小提琴:http://jsfiddle.net/NxfH6/

+0

它的作品!非常感謝。 – kaninabu 2012-03-08 15:43:03

相關問題