Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示jquery数据表中未显示的100个条目中的1到10个条目_Javascript_Jquery_Datatables_Jquery Datatables - Fatal编程技术网

Javascript 显示jquery数据表中未显示的100个条目中的1到10个条目

Javascript 显示jquery数据表中未显示的100个条目中的1到10个条目,javascript,jquery,datatables,jquery-datatables,Javascript,Jquery,Datatables,Jquery Datatables,我在jQueryJS中面临两个问题 一,。(我在显示“10”条目中的默认显示长度默认为10)。因此,对于前10条记录,我的逻辑运行良好。当我单击“下一步”按钮并导航到剩余的分页记录并单击任何数据行时,我的逻辑不起作用 <table> <c: forEach items="${tdetails}" var="tdetail" varStatus="loop"> <tr> <td>${loop.index+1}</td>

我在jQueryJS中面临两个问题

一,。(我在显示“10”条目中的默认显示长度默认为10)。因此,对于前10条记录,我的逻辑运行良好。当我单击“下一步”按钮并导航到剩余的分页记录并单击任何数据行时,我的逻辑不起作用

<table>
  <c: forEach items="${tdetails}" var="tdetail" varStatus="loop">
  <tr>
      <td>${loop.index+1}</td>
      <td><a tag name="det12" id="delhi" href="#" >${tdetail.empNumber}</a></td>
      <td>${tdetail.empName}</td>
      <td>${tdetail.empDate}</td>
      <td>${tdetail.empStatus}</td>
  </tr>
  </c:forEach>
</table>
<form id="employeeform" action="./getEmployeeStatusDisplay" method="get">
  <input type="hidden" id="empNumber" name="empNumber" value="${tdetail.empNumber}">
</form>

${loop.index+1}
${tdetail.empName}
${tdetail.empDate}
${tdetail.empStatus}
二,。“显示100个条目中的1到10个”未显示。我正在使用以下代码

$(document).ready(function(){  
    $('#detailstable').dataTable({  
    "bFilter": false,  
    "bInfo": false,  
    "bAutoWidth": false,  
    "bSortClasses": false,  
    "displayLength":10,  
    "oLanguage": {  
        "sInfo": "Showing START to END of TOTAL entries",  
        "sZeroRecords": "No data to show" },  
        "sDom": 'T<"clear">lfrtip'  
  });

  $('td a[name="det12"]').click(function(){
      alert("inside JS");
      id=$(this).text();
      alert(id);
      $('#empNumber').val(id);
      $.blockUI({ 
          message: $('#spinnerbox'), 
          css: { 
              margin:'0px auto' 
          } 
      }); 
      $("#spinner").show();
      $("#employeeform").submit();
  });
});
$(文档).ready(函数(){
$('#detailstable')。数据表({
“bFilter”:错误,
“bInfo”:假,
“bAutoWidth”:假,
“bSortClasses”:false,
“显示长度”:10,
“语言”:{
“sInfo”:“显示总条目的开始到结束”,
“sZeroRecords”:“无数据显示”},
“sDom”:“Tlfrtip”
});
$('td a[name=“det12”]”)。单击(函数(){
警报(“内部JS”);
id=$(this.text();
警报(id);
$('#empNumber').val(id);
$.blockUI({
信息:$(“#喷丝头盒”),
css:{
保证金:'0px自动'
} 
}); 
$(“#微调器”).show();
$(“#雇员表格”).submit();
});
});

如您所见,当我单击datatable的第一列${tdetail.empNumber}即href标记时,它应该调用'det12'JS,从而显示另一个表单('employeeform.jsp')。问题是,仅前10个数据行的逻辑工作正常,其余11到100个记录的逻辑工作不正常。

它不工作,因为每次数据表中显示新页面时,
单击功能都会重置,而您只执行
$('td a[name=“det12”])。单击(function(){/code>一次(这就是为什么它适用于第一页,第1-10行)。解决此问题的一种方法是在每次重新绘制数据表时(即,当用户单击另一页时)设置触发器,回调函数可用于:

$('#detailstable').dataTable({
   "bFilter": false,
   "bInfo": false,
   "bAutoWidth": false,
   "bSortClasses": false,
   "displayLength":10,
   "oLanguage": {
       "sInfo": "Showing START to END of TOTAL entries",
       "sZeroRecords": "No data to show" 
   },
   "sDom": 'T<"clear">lfrtip',

   fnDrawCallback : function() {
       $('td a[name="det12"]').click(function(){ 
          alert("inside JS"); 
          id=$(this).text(); 
          alert(id); 
          $('#empNumber').val(id); $.blockUI({ message: $('#spinnerbox'), css: { margin:'0px auto' } });    
          $("#spinner").show(); 
          $("#employeeform").submit(); 
       })
    }                                  
});
$('#detailstable')。数据表({
“bFilter”:错误,
“bInfo”:假,
“bAutoWidth”:假,
“bSortClasses”:false,
“显示长度”:10,
“语言”:{
“sInfo”:“显示总条目的开始到结束”,
“sZeroRecords”:“无数据显示”
},
“sDom”:“Tlfrtip”,
fnDrawCallback:函数(){
$('td a[name=“det12”]”)。单击(函数(){
警报(“内部JS”);
id=$(this.text();
警报(id);
$('empNumber').val(id);$.blockUI({message:$('empnerbox'),css:{margin:'0px auto'});
$(“#微调器”).show();
$(“#雇员表格”).submit();
})
}                                  
});
请参阅演示->我无法完全复制您的设置,但请单击页面,然后单击内容为“Trident”的记录。

它看起来像某个线程(以前可能被调用但未正确销毁)可能会产生此类问题。因此,我在JSP文件的脚本标记中尝试了以下内容。然后它工作正常。希望这对面临类似问题的人有所帮助

$('#detailstable').dataTable({
   "bFilter": false,
   "bInfo": false,
   "bAutoWidth": false,
   "bSortClasses": false,
   "displayLength":10, 
   });
   var bindLinks = function(){
 $('td a[name="det12"]').click(function(){
   id=$(this).text();
   $('#empNumber').val(id);
   $("#employeeform").submit();
  });
 };
 $("#detailstable").bind("draw.dt", function(){
        bind();
      });
  });

非常好的论坛。谢谢大家。

请制作一个“请”?请澄清“逻辑不工作”是什么意思谢谢大家。请查看我上面编辑的帖子。更多信息请让我知道。作为这个网站的新手,我发现粘贴代码片段有点困难。现在我学会了。:)非常感谢David。我尝试了fnDrawCallback()你已经解释过了。但是它也不起作用。最后在我朋友的帮助下,我找到了解决办法。