2011-01-17 7 views
-1

私はそれがうまく動作することをチェックしたチェックボックスを書くためのスクリプトを書いた/変更しましたが、私のPHPスクリプトではr1 []を読むチェックボックス名が必要ですJavaスクリプトで...[]でJavaScriptを読むチェックボックスのヘルプ

これは

<input name='r1' type='checkbox' value='' onClick='return GetSelectedItem2()' /> 

はこれが動作しないWORKS

<input name='r1[]' type='checkbox' value='' onClick='return GetSelectedItem2()' /> 

JAVASCRIPT

function GetSelectedItem2() { 
    chosen = "" 
    numCheck = 0 
    len = document.f1.r1.length 

    for (i = 0; i < len; i++) { 


     if (document.f1.r1[i].checked) { 
      numCheck++ 
      if (numCheck == 3) { 
       alert("Only pick two date") 
       document.f1; 
       return false; 
      } 
     } 
    } 
} 
+0

質問のタイトルは、Javaに言及し、あなたの質問には、JavaScriptについてです。私はあなたのためにそれを編集しました。 –

+0

私は世界の完全な停止キーの半分が壊れていることを誓う... – Bojangles

答えて

1

Javascriptは、PHPのようなフォーム要素を列挙しません。それはそのままの名前を保持します。すべての要素が同じ名前を持っているので、

// pseudo code 
for (var e in document.f1.elements) { // might need for each etc. 
    if (e.name == "r1[]") { 
     if (e.checked) { 
      numCheck++; 

配列構文アクセスは動作しません:あなたは手動で名前"r1[]"をチェックし、要素の反復処理する必要があります。私はすべてのJavascriptの実装がこれらの方法でアクセスできるようにしているとは確信していません(とにかく内部的にdictとして保存されるかもしれません)。

0

のjavascript:

function anyCheck(f){ 
var t=0; 
var c=f['r1[]']; 
for(var i=0;i<c.length;i++){ 
c[i].checked?t++:null; 
} 

if(t == 3) { 
alert('You selected ' + t + ' boxes.'); 
document.playlist; return false; 
} 


} 

チェックボックス

<input type="checkbox" name="r1[]" onclick="return anyCheck(this.form)"> 
関連する問題