jquery enable基于复选框禁用链接

时间:2012-11-06 07:39:14

标签: javascript jquery jquery-ui

我需要根据要检查的复选框禁用/启用“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>


enter image description here

3 个答案:

答案 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";
    }
}