2012-03-08 10 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> 

機能「すべてを選択」正常に動作しますが、私は送信ボタンをクリックしたときに、submited値が最後であることを見ますprint_rを使用した:以下は、私は(もちろんのstackoverflowのからの助けを借りて)書いたコードがあります私が選択したチェックボックス。たとえば、もし私が5-3-1-2をクリックすると、$ _POSTの値は "2"で残りは残りません。

私のコードは選択されたチェックボックスを1つしか登録できないため、最後のものだけが考慮されることがわかりました。だから私は、チェックボックスの名前の後ろに[]追加することにより、コードを書き直しました:私はしますprint_rでチェックするとき

<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> 

、それは複数選択を登録する(私は5-3-1-2をクリックした場合、値。 $ _POSTで今すぐ[0] => 5、[1] => 3、[2] => 1、[3] => 2)

"すべてを選択"チェックボックスはもう動作しません。フィールドを配列に変換した[]が原因であると考えています。私はいろいろな方法を試みました( "document.myform.list"を "document.myform.list []"などに置き換えてみました)。これまでのところ何も動いていません。私は実験を続けるでしょうが、上記の2つのコードは助けてください。これに

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

答えて

1

変更このサンキュー

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

をここにフィドルです:http://jsfiddle.net/NxfH6/

+0

それが動作します!!どうもありがとう。 – kaninabu

関連する問題