我有一些我写的脚本,它也完全按照我想要的方式工作,但它的作用似乎很长: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);
}
}
});
我试图弄清楚我是否已经写得最好了,或者是否有更好的方法?另外一个好处是禁用组中除选中的其他人之外的所有其他人,以便用户可以在选中错误的选项时返回......我真的很难让它工作:/
下面是一个明显较短的代码版本,具有完全相同的功能。 在这里看到它的工作:http://jsfiddle.net/x6xbymmL/1/
$(".class2, .class3").prop("disabled", true);
$('input[class^="class"]').click(function () {
if ($(".class1:checked").length > 0) {
$(".class1").prop("disabled", true);
$(".class2, .class3").prop("disabled", false);
}
if ($(".class2:checked").length > 0 || $(".class3:checked").length === 1) {
$(".class3").prop("disabled", true);
}
if ($(".class3:checked").length === 1 || $(".class2:checked").length === 2) {
$(".class3, .class2").prop("disabled", true);
}
});
对于你想要完成的事情,你真的有太多的if语句。 它正在工作,你很彻底,但大部分都是不必要的。