2013-09-23 50 views
1

JQuery數據表廣泛用於我們的web應用程序,並且通常它們不會產生問題。但有一個這樣的錯誤,在fnReloadAjax執行過程中,它提供了錯誤「TypeError:k is undefined」,它來自dataTables.js行,其中「fnServerData:function(e,j,m,k) 「發生。這裏是dataTable的定義:jQuery dataTable 1.9.4 fnReloadAjax給出「TypeError:k is undefined」錯誤

url = '?p=user.creation_rules_browser&page_action=getData'; 
data_table = jQuery('#data').dataTable({ 
    bJQueryUI: true, 
    sDom: '<"template-box"fl><"template-box"ip><"template-box"r><"ui-widget ui-widget-content ui-helper-clearfix ui-corner-all template-box" t><"template-box"p<"toolbar">>', 
    sAjaxSource: url, 
    bPaginate: false, 
    bProcessing: true, 
    bAutoWidth: false, 
    bSort:false, 
    bFilter:false, 
    bInfo:false, 
    aoColumns: [ 
       { "bSortable": false }, 
       { "bSortable": false }, 
       { "bSortable": false }, 
       { "bSortable": false }, 
       { "bSortable": false }, 
       { "bSortable": false }, 
       { "bSortable": false } 
      ] 
    }); 

它加載完美,但有一個列的操作菜單,讓你編輯行。這會彈出一個jQuery對話框,當你點擊「保存」執行:

jQuery.getJSON('index.php',{ 
    p: "user.creation_rules_browser", 
    page_action: "edit_rule", 
    rule_name: rule_name_val, 
    target_field: $('#input_target_field').val(), 
    action_value: action_value_val, 
    action_set_to_blank: action_set_to_blank_val, 
    id: data.id 
}, function (json) { 
    if (json.error) { 
     Dialog.alert({title: "Error Saving Rule"}, json.error); 
    } else { 
     jQuery(self).dialog('close'); 
     url = 'index.php?p=user.creation_rules_browser&page_action=getData'; 
     data_table.fnReloadAjax(url); 
    } 
} 

另存實際工作,但數據表沒有得到,因爲錯誤的重載。它應該回到那個URL和「getData」並重新加載,但是它被卡在fnServerData中,因爲k是未定義的。這個k對應於非最小fnServerData聲明中的oSettings,但是我已經完成了一個console.log並驗證了fnGetSettings返回了oSettings的預期副本。最初,url並沒有被傳遞給fnReloadAjax的調用,所以我認爲這可能是一個問題並添加它,但得到了相同的結果。

所以我不明白爲什麼它是未定義的。我想我的下一步將是使用非最小版本的dataTables.js,並在那裏添加一些調試,但我希望這裏有人會發現一些簡單的事情,在代碼中做錯了。

回答

1

沒關係,我發現數據表和fnReloadAjax的過時版本除了當前版本之外,還在加載。把它解決了。

相關問題