1. ホーム
  2. jquery

[解決済み] チェックボックスをループして、チェックされているもの、チェックされていないものをそれぞれカウントする

2023-04-15 21:21:42

質問

ちょっとした問題に遭遇しました。以下、簡単に説明します。

標準的なフォームに12個のチェックボックスがあります。私が行う必要があるのは、それらのそれぞれをループして、どれがチェックされ、どれがチェックされていないかを知ることです。

これを使用して、私はデータベースのフィールドに入力する文字列を作成することができます。以下はその例です。

(チェック1 - チェック済み)

(チェック2 - チェックなし)

(チェック3 - チェックあり)

1,0,1

ここまでで、こんな感じのコードになりました。

$('input[type=checkbox]').each(function () {
           if (this.checked) {
               console.log($(this).val()); 
           }
});

チェックされたものだけが戻され、すべてではないことを除けば、完璧に動作します。

どのように解決するのですか?

表示した通りの形式で結果文字列を構築するには、次のようにします。

var sList = "";
$('input[type=checkbox]').each(function () {
    sList += "(" + $(this).val() + "-" + (this.checked ? "checked" : "not checked") + ")";
});
console.log (sList);

しかし、私は@SLaksと同意見で、これをデータベースに格納する構造を再考する必要があると思います。

EDIT : 申し訳ありません、私はあなたが探していた出力形式を読み間違えていました。以下は更新情報です。

var sList = "";
$('input[type=checkbox]').each(function () {
    var sThisVal = (this.checked ? "1" : "0");
    sList += (sList=="" ? sThisVal : "," + sThisVal);
});
console.log (sList);