2015-12-14 29 views
0

我有一个表与列表,每行都有一个复选框,可以打开和关闭,当你点击行,我已经解决了,但我也想要一个按钮当一个或多个复选框被选中时被启用,而另一个按钮只在一个复选框被选中时被启用。切换禁用和启用与引导表中的jQuery

我不能启用/禁用部分工作

这里是我行HTML:

<tr class="ydelse ui-draggable ui-draggable-handle" data-title="test-title"> 
    <td><input type="checkbox"></td> 
    <td>This is a line title example</td> 
</tr> 

这是在HTML /引导按钮:

<div class="row"> 
    <div class="col-lg-2"> 
    <a href="#" class="btn btn-default ydelse-btn" id="sletydelse" disabled="disabled">SLET</a> 
    </div> 
    <div class="col-lg-5"> 
    <a href="#" class="btn btn-default ydelse-btn" id="redigerydelse" disabled="disabled">REDIGER</a>          
    </div> 
    <div class="col-lg-5 pull-right"> 
    <a href="#" class="btn btn-default ydelse-btn pull-right">OPRET NY</a>          
    </div> 
</div> 

这是我的jquery:

$('table tbody tr').click(function(event) { 
    if (event.target.type !== 'checkbox') { 
    $(':checkbox', this).trigger('click'); 
    } 

    if ($(':checkbox', this).prop("checked")) { 
    valgte++; 
    } else { 
    valgte--; 
    } 

    console.log(valgte); 

    if (valgte > 0) { 
    $('#sletydelse').prop("disabled", false); 
    $('#redigerydelse').prop("disabled", false); 
    console.log($('#sletydelse').prop("disabled")); 
    } else if (valgte > 1) { 
    $('#redigerydelse').prop("disabled", true); 
    } 

    if (valgte == 0) { 
    $('#sletydelse').prop("disabled", true); 
    $('#redigerydelse').prop("disabled", true); 
    } 

    console.log(valgte); 
}); 

任何人都可以请指导我在正确的方向

+0

你的条件有点怪异。你说, 如果有1个复选框被选中,然后启用它们。 其他如果选中2个或更多选中,则禁用其中一个。 否则如果(?)检查0,则禁用其中的2个。 但无论如何,这是一个代码,它的作品http://codepen.io/anon/pen/jWbXVj – Couteau

+0

太好了,谢谢。对不起,如果它不清楚,但你解决了它 –

回答

0

我想你应该切换类,而不是属性,因为按钮实际上是链接。

这里有一个不同的方法

$('table tbody tr').click(function(event) { 
    if (event.target.type !== 'checkbox') { 
     $(':checkbox', this).trigger('click'); 
    } 
    valgte = $('input[type=checkbox]:checked').length; 

    $('#sletydelse, #redigerydelse').addClass("disabled") 
    if (valgte > 0) { 
     $('#sletydelse').removeClass("disabled"); 
    } 
    if (valgte == 1) { 
     $('#redigerydelse').removeClass("disabled"); 
    } 
}); 

和排序的工作示例http://jsfiddle.net/42jevgpo/

+0

谢谢,高效的解决方案 –

-1
$('table tbody tr').click(function(event) { 
    if (event.target.type !== 'checkbox') { 
    $(':checkbox', this).trigger('click'); 
    } 

    if ($(':checkbox', this).prop("checked")) { 
    valgte++; 
    } else { 
    valgte--; 
    } 
    console.log(valgte); 

    if (valgte > 0) { 
    $('#sletydelse').css("disabled", false); 
    $('#redigerydelse').css("disabled", false); 
    console.log($('#sletydelse').prop("disabled")); 
    } else if (valgte > 1) { 
    $('#redigerydelse').css("disabled", true); 
    } 

    if (valgte == 0) { 
    $('#sletydelse').css("disabled", true); 
    $('#redigerydelse').css("disabled", true); 
    } 
    console.log(valgte); }); 
+0

使用CSS而不是道具 –

+0

谢谢你的回应,但我第一个答案去 –