ユーザーがリストのコースで使用するアイテムのx量を選択できる動的予約ページがあります。
例: 1 人あたり 3 つのチェックボックスがコースにリストされている場合がありますが、制限は 2 です。2 つに達すると、その人の残りの 1 つのチェックボックスは無効になります。
私が現在持っているソリューションは、Firefox と Chrome では完全に機能しますが、Internet Explorer では機能しません。
私のコードの理由を説明するには:
個人とコースの項目は動的であるため、後で PHP で選択を処理するために、各チェックボックスには動的な名前が付けられます。
各アイテムにIDがあり、各人にIDがある場合、チェックボックスの名前は[userid_itemid]に基づいています
チェックボックス名は、3 人のユーザーが
ユーザー 1-(1_1)、(1_2)、(1_3) のページで選択を行っている場合
、ユーザー 2-(2_1)、(2_2)、のようなパターンに従います。 (2_3)
ユーザー用 3-(3_1)、(3_2)、(3_3)
これは、Firefox と Chrome でチェックボックスを正しく無効にするコードです。
$(document).ready(function(){
$("input:checkbox").click(function() {
var chktest="input\\["+$(this).attr('id');
var bol = $("input[name^="+chktest+"_]:checked").length >= 2;
$("input[name^="+chktest+"_]").not(":checked").attr("disabled",bol);
});
});
ただし、Internet Explorer (間違いなくバージョン 8) では、チェックボックスの形状や形式が制限されていません。
上記の私のコードはこれに基づいていました:
Limit Checkbox amount ANSWER 19 動作中のデモを示しています。
そこに提供されているデモではクロスブラウザーで動作しますが、データが動的であるため、コードがより複雑になり、問題が発生したと考えられます。