我有一个HTML 表格。它显示来自数据库的数据。 7 列。(其中一列是复选框)
table 外面有一个按钮。 删除用户按钮最初是禁用的。
<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:
最佳答案
可以通过查看目标nodeName来查看该行的目标点击事件 如果它是 anchor ,则阻止进一步的任务。您也可以选中复选框。
$('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;
});
关于javascript - 'Redirect to a page when clicked on a row, enable a button when checkbox clicked.' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23622721/