我需要根据要检查的复选框禁用/启用“a.href”链接。我有一个复选框列表(2列)。如果选中“安装”列中的至少一个复选框,则应启用“安装”链接,否则禁用。如果在“删除”列中选中至少一个复选框,则应启用具有相同类名的链接,否则将禁用。
我已尝试过这个,但不确定这是否正确,它不起作用:
function refleshCheckboxes() {
if ($("input:checked").length > 0) {
$("input:checked").each(function(index, e) {
var css = $(e).attr('class').split(' ').slice(-1);
$("div.markActions a").each(function (index, e) {
$(e).removeClass("disablelink").hasClass(css);
});
});
}
else {
$("div.markActions a").addClass("disablelink");
}
}
$(“div.markActions a”) - 这是a.href链接的地方(在这个div内)
复选框与a.href链接具有相同的类名。所以我想得到复选框的类名,并将该类与a.href链接的类匹配。
复选框:
<input type="checkbox" value="2" class="checkbox install">
链接:
<a class="iconDiskPlus install disablelink" href="#">Install</a>
答案 0 :(得分:1)
我明白了:
function refleshCheckboxes() {
if ($("input.checkbox:checked").length > 0) {
var arr = new Array(".install", ".uninstalled", ".enabled", ".disabled", ".download", ".remove");
for (i = 0; i < arr.length; i++) {
if ($("input.checkbox:checked").is(arr[i])) {
$(".markActions a" + arr[i]).removeClass("disablelink");
} else {
$(".markActions a" + arr[i]).addClass("disablelink");
}
};
}
else {
$("div.markActions a").addClass("disablelink");
}
}
答案 1 :(得分:0)
尝试以下方法。
$(function(){
$('input.install').click(function(){
var install_link = $('a.install');
if($('input.install:checked').length !=0){
install_link.addClass('enablelink').text('install enabled');
}
else{
install_link.addClass('disablelink').text('install disabled');
}
});
});
查看demo
的js小提琴答案 2 :(得分:0)
您可以将onclick事件设置为如下所示的复选框:
<input id="someId" type="checkbox" value="2" class="checkbox install" onclick="myFunction()">
在你的js文件中定义一个函数:
function myFunction(){
var checkBox = document.getElementById("someId");
if(checkBox.checked == true){
//you have to give an id attribute to the object
// which you want to hide
var hideIt = document.getElementById("id");
hideIt.style.visibility = "none";
}
}