Jquery 如何避免在单击表行时选中复选框

Jquery 如何避免在单击表行时选中复选框,jquery,angularjs,checkbox,html-table,Jquery,Angularjs,Checkbox,Html Table,我有一个表,其中有一列是我需要激活或不激活的复选框,这取决于特定的逻辑 我的问题是,即使该复选框处于停用状态,当我单击表格行中的复选框时,复选框也会被选中 解决这个问题的最佳方法是什么? 使行表也处于停用状态 <table st-safe-src="sampleOverview.dataSet" st-table="sampleOverview.displayed" class="table table-striped"> <tr ng-repeat="sample

我有一个表,其中有一列是我需要激活或不激活的复选框,这取决于特定的逻辑

我的问题是,即使该复选框处于停用状态,当我单击表格行中的复选框时,复选框也会被选中

解决这个问题的最佳方法是什么? 使行表也处于停用状态

 <table st-safe-src="sampleOverview.dataSet" st-table="sampleOverview.displayed" class="table table-striped">
    <tr ng-repeat="sample in sampleOverview.displayed track by $index" ng-click="sample.selected = !sample.selected" ng-class="{success: sample.selected, warning : sample.deviceId == null || sample.methodId == null }" ng-disabled="sample.deviceId == null || sample.methodId == null">
                <td class="hidden-xs hidden-sm">{{sample.lab}}</td>
                <td class="hidden-xs hidden-sm">{{sample.subLab}}</td>
                <td>{{sample.deviceLimsCode}}</td>
                <td>{{sample.methodLimsCode}}</td>
                <td>{{sample.sampleCode}}</td>
                <td class="text-center hidden-xs hidden-sm">
                    <input type="checkbox" ng-model="sample.selected" ng-click="sampleOverview.selectSample($event, sample)" ng-disabled="sample.deviceId == null || sample.methodId == null">
                </td>
            </tr>
        </tbody>
    </table>
您正在使用ng单击行。移除它。您的ng单击表格行将触发复选框模型的值进行更改。您可以更改checkbox的ng模型的名称,或者删除ng click-on表,或者更改后者中使用的变量

 <table st-safe-src="sampleOverview.dataSet" st-table="sampleOverview.displayed" class="table table-striped">
    <tr ng-repeat="sample in sampleOverview.displayed track by $index" ng-class="{success: sample.selected, warning : sample.deviceId == null || sample.methodId == null }" ng-disabled="sample.deviceId == null || sample.methodId == null">
                <td class="hidden-xs hidden-sm">{{sample.lab}}</td>
                <td class="hidden-xs hidden-sm">{{sample.subLab}}</td>
                <td>{{sample.deviceLimsCode}}</td>
                <td>{{sample.methodLimsCode}}</td>
                <td>{{sample.sampleCode}}</td>
                <td class="text-center hidden-xs hidden-sm">
                    <input type="checkbox" ng-model="sample.selected" ng-click="sampleOverview.selectSample($event, sample)" ng-disabled="sample.deviceId == null || sample.methodId == null">
                </td>
            </tr>
        </tbody>
    </table> 

并在控制器中初始化selectedVal

Hey Vivz,感谢您的回复。是否有办法保持ng单击并阻止传播?我已经尝试了ng click=sample.selected=!样本选择$事件。停止传播;它不起作用,为什么你需要的ng模式的复选框是一样的,一旦在ng点击,为什么你要切换他们Hi,Vivz。谢谢你的回复。我需要它,因为当我切换到移动视图时,我的复选框不会出现。当移动视图打开时,ng click使表格可选择在上面的第二个解决方案中为ng click使用不同的变量,或者您可以为移动视图定义一个类,并且仅当它是移动视图时才启用行click
<table st-safe-src="sampleOverview.dataSet" st-table="sampleOverview.displayed" class="table table-striped">
    <tr ng-repeat="sample in sampleOverview.displayed track by $index" ng-click="selectedVal = !selectedVal" ng-class="{success: selectedVal, warning : sample.deviceId == null || sample.methodId == null }" ng-disabled="sample.deviceId == null || sample.methodId == null">
                <td class="hidden-xs hidden-sm">{{sample.lab}}</td>
                <td class="hidden-xs hidden-sm">{{sample.subLab}}</td>
                <td>{{sample.deviceLimsCode}}</td>
                <td>{{sample.methodLimsCode}}</td>
                <td>{{sample.sampleCode}}</td>
                <td class="text-center hidden-xs hidden-sm">
                    <input type="checkbox" ng-model="sample.selected" ng-click="sampleOverview.selectSample($event, sample)" ng-disabled="sample.deviceId == null || sample.methodId == null">
                </td>
            </tr>
        </tbody>
    </table>