“单击某行时重定向到页面时出错”,单击复选框时启用按钮。

时间:2014-05-13 04:18:22

标签: javascript jquery html css checkbox

我有 HTML表格。它显示数据库中的数据。 7列。(其中一个是复选框)

桌子外面有一个按钮。 删除用户按钮最初被禁用。

<a id="deleteuser" class="btn btn-danger btn-sm disabled" ><i class="fa fa-trash-o"></i> Delete users</a>

单击复选框时会启用它。 我的复选框

<input type="checkbox" name="chk" id="chk>
启用/禁用按钮的

jQuery

$(function(){
var button=$('#deleteuser');
button.attr('disabled','disabled');
$('#chk').change(function(e){
if(this.checked){
button.removeAttr('disabled');
} else {
button.attr('disabled','disabled');
}
});
});

直到现在都很好。现在我要为这个表添加一个功能。单击任何行时,该行的内容必须重定向到另一个页面,以便我可以修改该数据。

要点击表格,我使用了 CSS

<style>
    table, table tr, table tr td { cursor: pointer;}
</style>

要编辑特定行,我会将该行的内容(基于用户ID)重定向到另一个页面。我用的脚本:

$(document).ready(function(){
$('table.table tr').click(function () {

        window.location='edituserdata.php'
    });

});

----------问题--------------

现在,当我点击一行时,我会被重定向到edituserdata.php(即使我点击了一个复选框)。我想在我点击复选框时启用删除用户按钮,当我点击该行中的任何其他列时重定向到其他页面。我在某个地方出错......无法理解。 有人帮忙???两者都有效,但不能同时发挥作用。

的jsfiddle:

http://jsfiddle.net/iamsajeev/8eMDG/

1 个答案:

答案 0 :(得分:0)

您可以通过检查目标nodeName来检查行的目标单击事件 如果它是锚,则防止进一步的任务。你也可以勾选复选框。

$('table.table tr').click(function (ev) {
    if(ev.target.nodeName.toLowerCase() == "a") return;
    if(ev.target.nodeName.toLowerCase() == "input")return;
});

我相信您也可以使用is来检查元素。

$('table.table tr').click(function (ev) {
    if($(ev.target).is("a")) return;
    if($(ev.target).is("input[type=checkbox]"))return;
});

Fiddle