2012-12-12 50 views
1

我已经使用datatables.editable和Jeditable实现了一个jquery Datatable。我可以使用文本区域作为可编辑字段,但我在设置Select作为可编辑时遇到问题。jeditable:使用选择时出现错误

我有下面的代码初始化编辑:

oTable.makeEditable({ 
    sUpdateURL: "../ReconService.asmx/UpdateUser", 
    "aoColumns": [ 
     null, 
     null, 
     { 
      indicator: 'Updating user...", 
      tooltip: "Change user", 
      type: "select", 
      submit: "Save", 
      data: getUserFilterOptions() 
     } 
    ] 
}); 

然后我有一个JavaScript/jQuery的功能,从DB获得用户的列表。在这个函数中,我尝试了很多不同的东西。因为它现在手动站的功能可以将字符串在网站上指定的格式jeditable

我所拥有的功能如下:

function getUserFilterOptions() { 
    $.ajax({ 
     type:"POST", 
     contentType: "application/json; charset=utf-8", 
     url: "../ReconService.asmx/GetUsers", 
     dataType: "json", 
     success: function(result){ 
      var userResult = result.d; 
      if (userResult.length > 0){ 
       var text = "{'Select':'Select',"; 
       $.each(userResult, function(index, val) { 
        text += "'"; 
        text += val["value"]; 
        text += "':'"; 
        text += val["value"]; 
        text += "'"; 
        text += ","; 
       }); 
       text += "'selected:'Select'}"; 
       return text; 
      } 
     }, 
    }); 
} 

我已经使用Chrome的开发者工具来浏览功能该函数返回以下字符串:
“{'Select':'Select','Administrator':'Administrator','User1':'User 1','selected':'Select'}”
format是正确的,据我所知,但当我点击可编辑表格单元格时,我得到一个错误:

Uncaught SyntaxError: Unexpected end of input jquery.jeditable.mini.js:34 $.editable.types.select.content jquery.jeditable.mini.js:34 $.fn.editable.each.reset.self.editing jquery.jeditable.mini.js:18 jQuery.event.dispatch jquery-1.8.3.js:3058 jQuery.event.add.elemData.handle.eventHandle jquery-1.8.3.js:2676

令人困惑的是,如果我复制该字符串值并将其直接放入可调整的数据参数中,它可以正常工作。我甚至创建了一个函数来返回这个文字字符串,它工作正常。

实施例,如下所示取代函数的内容:

function getUserFilterOptions(){ 
    return "{'Select':'Select','Administrator':'Administrator','User1':'User 1','selected':'Select'}" 
} 

这工作得很好。

我不是一个JavaScript专家,所以任何帮助,非常感谢。

回答

0

你应该改变从异步Ajax请求的类型为同步是这样的:

function getUserFilterOptions() { 
    return $.ajax({ 
    type:"POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/url", 
    dataType: "json", 
    async: false, 
    }).responseText; 
} 

我试图从服务器返回的JSON和它的作品。

相关问题