チェックボックスがクリックされたときにアクティブになり、クリックされたチェックボックスの値フィールドに基づいて他のチェックボックスを無効または有効にするjquery関数が必要です。
これまでのところ:
$(function () {
$('input [type="checkbox"]').click(function () {
});
});
さて、私はいくつかの進歩を遂げました..しかしそれはまだ機能していません。
<script type="text/javascript">
$(function () {
$(':checkbox').click(function () {
$value = $(this).attr('value');
if ($(this).is(':checked'))
{
switch ($value)
{
case "BLIPA":
$(':checkbox[value*="B"]').attr('disabled', true);
}
}
else
{
$(':checkbox').each(function()
{
}
}
});
});
私は何か間違いをしましたか?
編集:
さて、私はそれを解決しました。解決策は次のとおりです。
<script type="text/javascript">
$(function () {
$("input[type='checkbox']").click(function () {
var value = $(this).attr('value');
if ($(this).is(':checked')) {
var modules = FindModuleRules(value);
$(':checkbox[value*="' + modules[0] + '"]').attr('disabled', true);
$(':checkbox[value*="' + modules[1] + '"]').attr('disabled', true);
$(':checkbox[value*="' + modules[2] + '"]').attr('disabled', true);
$(':checkbox[value~="' + value + '"]').attr('disabled', false);
}
else {
var modules = FindModuleRules(value);
$(':checkbox[value*="' + modules[0] + '"]').attr('disabled', false);
$(':checkbox[value*="' + modules[1] + '"]').attr('disabled', false);
$(':checkbox[value*="' + modules[2] + '"]').attr('disabled', false);
}
});
function FindModuleRules(string) {
var modules = new Array();
var bRegex = /B/;
var lRegex = /L/;
var aRegex = /A/;
if (string.search(bRegex) != -1)
modules[0] = "B";
else
modules[0] = "X";
if (string.search(lRegex) != -1)
modules[1] = "L";
else
modules[1] = "X";
if (string.search(aRegex) != -1)
modules[2] = "A";
else
modules[2] = "X";
return modules;
}
});