-2

この JS 関数を変更して、コンマ区切りの文字列の値を持つチェックボックスのみをチェックするにはどうすればよいですか? MySQL では "IN" 関数を使用してこれを行うことができますが、Javascript にそのような関数はありますか? 見つからないようです..

値が 1、2、3、4、5 の「グループ」チェックボックスを選択したいのですが、チェックされている場合は、下の「個別」チェックボックスを単一の値 1 でチェックしてください....または...2....または...3....など

例:

(チェックボックス 1) グループ 1 値="1,2,3"

(チェックボックス 2) 項目 1 値="1"

(チェックボックス 3) 項目 2 値="2"

(チェックボックス 4) 項目 3 値="3"

(チェックボックス 5) 項目 4 値="4"

したがって、チェックボックス 1 がチェックされている場合、チェックボックス 2、3、4 がチェックされます。

function SetAllCheckBoxes(FormName, FieldName, CheckValue) {
    if (!document.forms[FormName]) return;

    var objCheckBoxes = document.forms[FormName].elements[FieldName];  
    if (!objCheckBoxes) return;

    var countCheckBoxes = objCheckBoxes.length;
    if (!countCheckBoxes) {
        objCheckBoxes.checked = CheckValue;
    }
    else {
        // set the check value for all check boxes
        for(var i = 0; i < countCheckBoxes; i++) {
            objCheckBoxes[i].checked = CheckValue;
        }
    }
}
4

2 に答える 2

0

さて、この質問の不可解な性質に基づいて私の質問を更新しました。オブジェクトがカンマ区切りの文字列に存在する値を持っているかどうかを確認したいですか? もしそうなら:

function SetAllCheckBoxes(individualCheckbox,values) {
   if(!individualCheckbox||!values) {
      return; 
   } else {
     var array = values.split(',');  
     for(var i = 0; i <= array.count(); i++) {
        if(individualCheckbox.value == array[i]) {
           return true;
        } 
     }
   }
} 
于 2012-04-04T15:28:50.550 に答える
0

1) OMG、ブレースを使用してください。

2)これは何ですか:

if(!countCheckBoxes)
    objCheckBoxes.checked = CheckValue;

...チェックボックスがない場合、空の配列をCheckValueに設定するのはなぜですか?

3) ページで 1 つのフォームを取得し、そのフォーム内で特定の名前の要素を探しています。複数のチェックボックスを取得することを本当に期待していますか? もしそうなら、あなたはhtmlが壊れています。ラジオボタンのグループについて話しているのですか??

4) あなたの質問は明確ではありません。しかし、答えは文字列関数、分割と関係があるかもしれません:

var vals = "a,b,c".split(","); // vals == ["a", "b", "c"]

わかりましたので、質問を明確にすることに基づいて、次のものが必要になると思います。

function SetAllCheckBoxes(FormName, FieldNames, CheckValue) {
    var form = document.forms[FormName];
    if (!form) {
        return;
    }

    var checkboxNames = FieldNames.split(",");
    for (var i=0, l=checkboxNames.length; i<l; i++) {
        var checkboxName = checkboxNames[i].trim(); // needed if your comma separated string may contain spaces
        var checkbox = form.elements[checkboxName];
        checkbox.checked = CheckValue
    }
}
于 2012-04-04T15:38:45.870 に答える