jQuery DataTables知道是否已选择表行,如果未选择,则按按钮发出警报
如果选择了一行,如何检查jQuery数据表?我试图创建一个完整的按钮,只有在选择了DataTable中的一行时,按下该按钮才能提交到数据库。如果该行未被选中且按下按钮,我希望它提醒用户,并告诉他们必须选择要完成的行 我所尝试的:jQuery DataTables知道是否已选择表行,如果未选择,则按按钮发出警报,jquery,Jquery,如果选择了一行,如何检查jQuery数据表?我试图创建一个完整的按钮,只有在选择了DataTable中的一行时,按下该按钮才能提交到数据库。如果该行未被选中且按下按钮,我希望它提醒用户,并告诉他们必须选择要完成的行 我所尝试的: $(document).ready(function () { $("#CompleteIt").click(function () { var table = $('#processing').DataTable(); $('
$(document).ready(function () {
$("#CompleteIt").click(function () {
var table = $('#processing').DataTable();
$('#processing tbody').on( 'click', 'tr', function () {
var rowdata = table.row( this ).data();
console.log(rowdata);
if (!rowdata) {
console.log(rowdata.id);
alert("Please choose a batch to be completed.");
return false;
} else {
}
});
您必须将所选行存储在全局变量上,并在“提交”按钮上检查它
var selectedRow = null;
var table = $('#processing').DataTable();
$('#processing tbody').on( 'click', 'tr', function (e) {
e.stoppropagation();
selectedRow = table.row( this ).data();
return false;
})
$(body).click(function(){
selectedRow = null;
});
$("#CompleteIt").click(function () {
if(selectedRow){
//process the request
return true;
}
alert("No row is slected");
})
您必须将所选行存储在全局变量上,并在“提交”按钮上检查它
var selectedRow = null;
var table = $('#processing').DataTable();
$('#processing tbody').on( 'click', 'tr', function (e) {
e.stoppropagation();
selectedRow = table.row( this ).data();
return false;
})
$(body).click(function(){
selectedRow = null;
});
$("#CompleteIt").click(function () {
if(selectedRow){
//process the request
return true;
}
alert("No row is slected");
})
您必须将所选行存储在全局变量上,并在“提交”按钮上检查它
var selectedRow = null;
var table = $('#processing').DataTable();
$('#processing tbody').on( 'click', 'tr', function (e) {
e.stoppropagation();
selectedRow = table.row( this ).data();
return false;
})
$(body).click(function(){
selectedRow = null;
});
$("#CompleteIt").click(function () {
if(selectedRow){
//process the request
return true;
}
alert("No row is slected");
})
您必须将所选行存储在全局变量上,并在“提交”按钮上检查它
var selectedRow = null;
var table = $('#processing').DataTable();
$('#processing tbody').on( 'click', 'tr', function (e) {
e.stoppropagation();
selectedRow = table.row( this ).data();
return false;
})
$(body).click(function(){
selectedRow = null;
});
$("#CompleteIt").click(function () {
if(selectedRow){
//process the request
return true;
}
alert("No row is slected");
})
还可以使用隐藏字段存储选定行。如果需要将单击的行发送到服务器,这可能很有用 在HTML中添加:
<input id="selectedRow" type="hidden"/>
然后,在按钮的处理程序上,检查此隐藏输入是否有值:
$('#CompleteIt').click(function(){
var rowIndex = $('#selectedRow').val();
if (rowIndex){
console.log("Row selected: " + rowIndex);
} else {
console.log("No row selected!");
return false;
}
});
根据文档改编的示例:
编辑:如何使用行中第一项的数据而不是索引?
使用
行(this).data()
(文档)代替行(this).index()
。根据填充字段的方式,获取的数据可能是对象或数组。如果使用DOM源数据,data()
将返回一个数组,因此要访问第一个项目,您需要行(this).data()[0]
。如果您使用了一个对象(比如来自ajax源的json),那么您将得到一个对象,因此您需要访问所需的属性,比如行(this).data().id
。查看。您还可以使用隐藏字段存储所选行。如果需要将单击的行发送到服务器,这可能很有用
在HTML中添加:
<input id="selectedRow" type="hidden"/>
然后,在按钮的处理程序上,检查此隐藏输入是否有值:
$('#CompleteIt').click(function(){
var rowIndex = $('#selectedRow').val();
if (rowIndex){
console.log("Row selected: " + rowIndex);
} else {
console.log("No row selected!");
return false;
}
});
根据文档改编的示例:
编辑:如何使用行中第一项的数据而不是索引?
使用
行(this).data()
(文档)代替行(this).index()
。根据填充字段的方式,获取的数据可能是对象或数组。如果使用DOM源数据,data()
将返回一个数组,因此要访问第一个项目,您需要行(this).data()[0]
。如果您使用了一个对象(比如来自ajax源的json),那么您将得到一个对象,因此您需要访问所需的属性,比如行(this).data().id
。查看。您还可以使用隐藏字段存储所选行。如果需要将单击的行发送到服务器,这可能很有用
在HTML中添加:
<input id="selectedRow" type="hidden"/>
然后,在按钮的处理程序上,检查此隐藏输入是否有值:
$('#CompleteIt').click(function(){
var rowIndex = $('#selectedRow').val();
if (rowIndex){
console.log("Row selected: " + rowIndex);
} else {
console.log("No row selected!");
return false;
}
});
根据文档改编的示例:
编辑:如何使用行中第一项的数据而不是索引?
使用
行(this).data()
(文档)代替行(this).index()
。根据填充字段的方式,获取的数据可能是对象或数组。如果使用DOM源数据,data()
将返回一个数组,因此要访问第一个项目,您需要行(this).data()[0]
。如果您使用了一个对象(比如来自ajax源的json),那么您将得到一个对象,因此您需要访问所需的属性,比如行(this).data().id
。查看。您还可以使用隐藏字段存储所选行。如果需要将单击的行发送到服务器,这可能很有用
在HTML中添加:
<input id="selectedRow" type="hidden"/>
然后,在按钮的处理程序上,检查此隐藏输入是否有值:
$('#CompleteIt').click(function(){
var rowIndex = $('#selectedRow').val();
if (rowIndex){
console.log("Row selected: " + rowIndex);
} else {
console.log("No row selected!");
return false;
}
});
根据文档改编的示例:
编辑:如何使用行中第一项的数据而不是索引?
使用
行(this).data()
(文档)代替行(this).index()
。根据填充字段的方式,获取的数据可能是对象或数组。如果使用DOM源数据,data()
将返回一个数组,因此要访问第一个项目,您需要行(this).data()[0]
。如果您使用了一个对象(比如来自ajax源的json),那么您将得到一个对象,因此您需要访问所需的属性,比如行(this).data().id
。查看。@DavidBrierton我编辑了我的答案,现在表是一个对象。@DavidBrierton我编辑了代码,现在当您单击该行时,它可以防止触发所有单击事件,但是如果您单击表行以外的任何位置,变量将被清除。您还可以向所选行添加一些类以指示它已被选中(并在再次单击该行时将其删除)。文档中有一个可能有用的参数。@DavidBrierton我编辑了我的答案,现在表是一个对象。@DavidBrierton我编辑了代码,现在当您单击该行时,它可以防止触发所有单击事件,但如果您单击表行以外的任何位置,该变量将被清除。您还可以向所选行添加一些类来指示它已选中(并在再次单击该行时将其删除)。文档中有一个可能有用的参数。@DavidBrierton我编辑了我的答案,现在表是一个对象。@DavidBrierton我编辑了代码,现在当您单击该行时,它可以防止触发所有单击事件,但如果您单击表行以外的任何位置,该变量将被清除。您还可以向所选行添加一些类来指示它已选中(并在再次单击该行时将其删除)。文档中有一个可能有用的参数。@DavidBrierton我编辑了我的答案,现在表是一个对象。@DavidBrierton我编辑了代码,现在当您单击该行时,它可以防止触发所有单击事件,但如果您单击表行以外的任何位置,该变量将被清除。您还可以向所选行添加一些类来指示它已选中(并在再次单击该行时将其删除)。文档中有一个。