【发布时间】:2014-07-07 12:06:38
【问题描述】:
我有以下 javascript 代码(JQuery 和数据表),它给出了错误 Uncaught Type error: undefined is not a function。
function checkTransaction(tableName, url, columns){
var columnList = []; for (var i = 0; i < columns.length; i++){ columnList.push({ "data": columns[i] }); } for (var i = 0; i < 1; i++){ columnList.push({ "data": "id" }); } $(document).ready(function(){ var firstname = $("#firstname").val(); var lastname = $("#lastname").val(); var startDate = $("#startdate").val(); var endDate = $("#enddate").val(); searchTable = $(tableName).dataTable({ "ordering": false, "columns": columnList, "columnDefs": [ { "targets": columns.length, } ], "pagingType": "full_numbers", "ajax": { "url": url, type: "POST", data: {firstname: firstname, lastname: lastname, startDate: startDate, endDate: endDate}, "dataSrc": "", error: function(xhr, error) { if (xhr.status == 400) { alert('Bad Request. [400]'); } else if (xhr.status == 401) { alert('User Unauthorized To Access Resource. [401]'); } else if (xhr.status == 403) { alert('Access To Resource Forbidden [403]'); } else if (xhr.status == 404) { alert('Requested Resource Not Found [404].'); } else if (xhr.status == 500) { alert('Internal Server Error [500].'); } else if (xhr.status == 503) { alert('Service Unavailable [503].'); } else if (error === 'parsererror') { alert('Requested JSON parsing failed.'); } else if (error === 'timeout') { alert('Time out error.'); } else if (error === 'abort') { alert('Ajax request aborted.'); } else { alert('Uncaught Error.\n' + xhr.responseText); } }, } }); }); }
Chrome 指向这个 "searchTable = $(tableName).dataTable({" 作为错误的来源 但对我来说看起来不错(我对 Javascript 的了解有限) 如果有人能解释导致此错误的原因,我将不胜感激。
PS:我已经确保第一次加载 jquery 并且只加载了一个 jquery 库,我已经确保数据表库也被加载。 谢谢。
【问题讨论】:
-
能不能加个JsFiddle
-
@Lakshay 这里是 JsFiddle jsfiddle.net/XLW7N 但请记住,应该有一个使用 javascript 代码的 grails 控制器。
-
@alnafie tableName 是传递给函数 checkTransaction 的参数。
标签: javascript datatable