4

@stackoverflowで同様の質問がいくつかあるかもしれませんが、まだ問題の解決策が見つかりませんでした:s

<?php
while($rowVideo = mysql_fetch_array($ResultQueryVideo))
{
?>
<input type="checkbox" name = "checkbox-1[]" class="checkbox" value ="<?php echo $rowVideo['idVideo'] ?>" /> <?php....some code...

これにより、idVideo と同じ数のチェックボックスがいくつか表示されます。これがポイントです。

送信する前に、少なくとも 1 つのチェックボックスがオンになっていることを確認する必要があります。しかし、私は成功しませんでした:x

function isCountCheck (helperMsg) {
    var chkCnt = 0;
    var Frm = document.forms[0];
    var dLen = Frm.length - 1;
    for (i=0;i<=dLen;i++) {
        if(document.form1.["checkbox-1[]"].checked) chkCnt++;
    }

    if (chkCnt>0) {
        return true;
    } else {
        alert(helperMsg);
        return false;
    }
}

その他の詳細: フォーム名 = "form1"

少し案内してもらえますか?ありがとう

編集:

function isCountCheck(){
    if($("input[type=checkbox]:checked").length > 0)
    {
    return true;
    }
    else
    {
    alert('Invalid');
    return false;
    }
}

しかし、まだ機能していません..そのアラートさえ表示されます..

4

3 に答える 3

3

主な問題はi、ループ内のインデックスを使用して個々のチェックボックスを参照しておらず、構文エラーの.直前にあることです。[だから変更:

if(document.form1.["checkbox-1[]"].checked) chkCnt++;

に:

if(document.form1["checkbox-1[]"][i].checked) chkCnt++;

ただし、次のように関数をいくらか調整できます。

function isCountCheck(helperMsg) {
    var i, dLen = document.form1["checkbox-1[]"].length;
    // if the length property is undefined there is only one checkbox
    if (typeof dLen === "undefined") {
        if (document.form1["checkbox-1[]"].checked) return true;
    }
    else {
        for (i = 0; i < dLen; i++) {
            if (document.form1["checkbox-1[]"][i].checked) return true;
        }
    }
    alert(helperMsg);
    return false;
}

デモ: http: //jsfiddle.net/nnnnnn/ZjK3w/1/

または、フォーム内のすべての入力をループして、それぞれのタイプ(および/または名前)を確認します。

function isCountCheck(helperMsg) {
    var i, len, inputs = document.form1.getElementsByTagName("input");
    for (i = 0, len = inputs.length; i < len; i++) {
        if (inputs[i].type === "checkbox"
            && inputs[i].checked)
            return true;
    }
    alert(helperMsg);
    return false;
}

デモ: http: //jsfiddle.net/nnnnnn/ZjK3w/2/

于 2012-08-07T03:43:39.990 に答える
0

Jquery を使用します。

function isCountCheck(helperMsg){
    if($("input[type=checkbox]:checked").length > 0)
        return true;
    alert(helperMsg);
    return false;
}
于 2012-08-07T03:16:33.747 に答える