私が書いたいくつかのスクリプトがあり、それも私が望むように正確に機能しますが、それが何をするかについてはかなり長いようです: http://jsfiddle.net/x6xbymmL/
$(".class2").prop("disabled", true);
$(".class3").prop("disabled", true);
$('input[class^="class"]').click(function() {
var $this = $(this);
if ($this.is(".class1")) {
if ($(".class1:checked").length > 0) {
$(".class1").prop("disabled", true);
$(".class2").prop("disabled", false);
$(".class3").prop("disabled", false);
} else {
$(".class1").prop("disabled", false);
$(".class2").prop("disabled", true);
$(".class3").prop("disabled", true);
}
}
if ($this.is(".class2")) {
if ($(".class2:checked").length > 0) {
$(".class1").prop("disabled", true);
$(".class2").prop("disabled", false);
$(".class3").prop("disabled", true);
} else {
$(".class1").prop("disabled", true);
$(".class2").prop("disabled", false);
$(".class3").prop("disabled", false);
}
}
if ($this.is(".class2")) {
if ($(".class2:checked").length > 1) {
$(".class1").prop("disabled", true);
$(".class2").prop("disabled", true);
$(".class3").prop("disabled", true);
} else {
$(".class1").prop("disabled", true);
$(".class2").prop("disabled", false);
$(".class3").prop("disabled", true);
}
}
if ($this.is(".class3")) {
if ($(".class3:checked").length > 0) {
$(".class1").prop("disabled", true);
$(".class2").prop("disabled", true);
$(".class3").prop("disabled", true);
} else {
$(".class1").prop("disabled", true);
$(".class2").prop("disabled", false);
$(".class3").prop("disabled", true);
}
}
});
できる限り最善を尽くして書いたのか、それとももっと良い方法があるのか を把握しようとしていますか? また、間違ったオプションをチェックした場合にユーザーが戻ることができるように、チェックされたものを除くグループ内の他のすべてを無効にすることもできます...これを機能させるのに本当に苦労しました:/