jQuery DataTables不提交每一行

时间:2018-08-01 09:13:57

标签: jquery servlets datatables

我知道,这个主题中有很多问题(和答案),但是没有一个对我有帮助。 我需要一个主意..或东西。

我在JSP和Servlet中使用数据表。 我有一个简单的表,其中包含一个输入字段。 我尝试了许多解决方案,例如: https://www.gyrocode.com/articles/jquery-datatables-how-to-submit-all-pages-form-data/#solution-direct

应该做的,但不是。 这是我的JavaScript代码:

$(document).ready(function() {
    var tablam = $('#myTable').DataTable({
        responsive: true,
        "language": {
            "url": "//cdn.datatables.net/plug-ins/1.10.16/i18n/Hungarian.json"
        }
    });

    $('#submitButton').click( function() {
       var form = document.forms['myForm'];

       var params = tablam.$('input').serializeArray();

       $.each(params, function(){
          // If element doesn't exist in DOM
          if(!$.contains(document, form[this.name])){
             // Create a hidden element
             $(form).append(
                $('<input>')
                   .attr('type', 'hidden')
                   .attr('name', this.name)
                   .val(this.value)
             );
             console.log(form[this.name].name + ': ' + form[this.name].value);
          }
       });
    });

});

如您所见,最后我将其写入控制台,它显示:

...
product15: 
product36: 
product68: 1
product69: 2
product70: 3
product71: 4
product16: 
product65: 
...

在测试用例中,我跳至第5页,将1,2,3,4写入4行,然后跳回到第1页并提交。因此似乎所有隐藏字段都存在。

但是,这是从Chrome的“网络”标签中获得的,因为我知道这是请求中已提交值的列表:

fixTable_length: 10
product88: 
product66: 
product44: 
product89: 
product2003: 
product41: 
product22: 
product61: 
product57: 
product90: 

这10个元素恰好是第一页的10行。仅此而已。 是的,如果我在服务器端对其进行测试,则仅存在NULL。

怎么了,为什么没有提交隐藏文件?

!!!解决方案!!!

好的,所以我没有向您展示按钮部分。在我的按钮上,有一个onclick()函数,该函数首先运行,而不是我的jquery函数,该函数创建了隐藏字段,但是在提交之后。 在一个功能中,它就像一种魅力一样工作:)

0 个答案:

没有答案