0

我在文档中定义了一个数据表,如下所示

$(document).ready(function() {
var oTable =  $('#systemgoals').dataTable({});

我有一个带有表单的对话框和一个具有以下功能的按钮

 buttons: {
         "Add System Goal": function() {
             var formfilled = true;
             $("form#add_systemgoal :text, form#add_systemgoal :file, form#add_systemgoal :checkbox, form#add_systemgoal select, form#add_systemgoal textarea").each(function() {
                   if($(this).val() === "")

                         formfilled = false;
                });
                if(formfilled === true){
                    $('form#add_systemgoal .error').remove();
             var formdata = $('form#add_systemgoal').serialize();
             $.ajaxSetup({async: false});  
             $.ajax({     
                 type: "POST",
                 url: '/admin/systemgoals/systemgoalupdate?format=html',
                 data: formdata,
                 success: function (data) {
                     var obj = $.parseJSON(data);
                     if(obj.success){
                         $(oTable).dataTable().fnAddData( [
                                                                obj.inserted.goal_id,
                                                                obj.inserted.value,
                                                                obj.inserted.status,
                                                                obj.inserted.points_per_action,
                                                                obj.inserted.created,
                                                                obj.inserted.due,
                                                                obj.inserted.expires ]);                                                        

                         }                       
                    }
             });
                }

ajax 很好表单发布正确的值响应但 fnAddData 返回错误

ReferenceError: oTable 未定义

任何建议表示赞赏

谢谢你

4

1 回答 1

0

你没有将你的 oTable 设置为一个全局变量,为什么你的对话框上的 oTable 没有定义,如果你想在你的脚本上定义它,请执行以下操作:

var oTable;
$(document).ready(function() {
oTable =  $('#systemgoals').dataTable({});

在你的对话中

 oTable.fnAddData( [
                                                                obj.inserted.goal_id,
                                                                obj.inserted.value,
                                                                obj.inserted.status,
                                                                obj.inserted.points_per_action,
                                                                obj.inserted.created,
                                                                obj.inserted.due,
                                                                obj.inserted.expires ]);                                                        

                         }     

或者干脆做

var oTable =  $('#systemgoals').dataTable().fnAddData...

此致

于 2013-06-05T10:24:34.353 回答