Jquery 发布非'的表单元素;在数据表中不可见
我正在表单中包含的表上使用一个名为Datatables的jQuery插件,该表将包含许多表单元素 我在页面上有一个savechanges按钮,它将执行一个AJAX请求,根据用户输入的内容更新数据库 我的问题是,它将只发布当前在Datatable中可见的表单元素。在我的一个例子中,有74行(都包含几个字段)。要显示的默认记录数为10 因此,在提交表单时,只提交10行的表单元素。我要提交所有行的字段——在本例中,所有74行的字段值Jquery 发布非'的表单元素;在数据表中不可见,jquery,datatables,Jquery,Datatables,我正在表单中包含的表上使用一个名为Datatables的jQuery插件,该表将包含许多表单元素 我在页面上有一个savechanges按钮,它将执行一个AJAX请求,根据用户输入的内容更新数据库 我的问题是,它将只发布当前在Datatable中可见的表单元素。在我的一个例子中,有74行(都包含几个字段)。要显示的默认记录数为10 因此,在提交表单时,只提交10行的表单元素。我要提交所有行的字段——在本例中,所有74行的字段值 有人能解决这个问题吗?谢谢。数据表会销毁隐藏的行并将它们从DOM中取
有人能解决这个问题吗?谢谢。数据表会销毁隐藏的行并将它们从DOM中取出。如果需要进行提交,则应在提交之前使用FNGETHIDDENODES()检索隐藏行。看一看这些页面
$.fn.dataTableExt.oApi.fngethiddenodes=函数(oSettings)
{
/*注意,DataTables“private”函数的使用被认为是“oApi”对象*/
var anNodes=this.oApi.\u fngetrnodes(oSettings);
var和splay=$('tbody tr',oSettings.nTable);
/*删除正在显示的节点*/
对于(var i=0;i您是否使用服务器端源代码来创建表?我使用的是经典ASP来构建表。我的意思是-您是每次都从服务器获取隐藏的行,还是输出整个表,然后数据表为您分页?哦,对了,我没有在服务器端隐藏任何行。我让数据表完成所有分页。@ManseUK datatables处理分页并销毁隐藏行。非常感谢。我们在文档中查找此代码,但找不到。快速提问jQuery.inArray
和$之间有什么不同。inArray
?@garethliews它们完全一样,$
是jQuery
的别名,如果我理解的话我的想法是,我应该如何处理anNodes来提交表单?我必须以某种方式将每一行再次附加到表中?@El_Hoy我的表有复选框,所以我以这种方式使用它var hiddenCheckboxes=$(oTable.fngethiddenodes()).find('input[type=checkbox]:checked');
这将返回所有选中的复选框。然后将此数据与AJAX数据一起发送。
$.fn.dataTableExt.oApi.fnGetHiddenNodes = function ( oSettings )
{
/* Note the use of a DataTables 'private' function thought the 'oApi' object */
var anNodes = this.oApi._fnGetTrNodes( oSettings );
var anDisplay = $('tbody tr', oSettings.nTable);
/* Remove nodes which are being displayed */
for ( var i=0 ; i<anDisplay.length ; i++ )
{
var iIndex = jQuery.inArray( anDisplay[i], anNodes );
if ( iIndex != -1 )
{
anNodes.splice( iIndex, 1 );
}
}
/* Fire back the array to the caller */
return anNodes;
}