繁体   English   中英

可编辑:使用“选择”时出现错误

[英]jeditable: Getting an error when using Selects

我已经实现了带有datatables.editable和Jeditable的jquery Datatable。 我可以将文本区域用作可编辑字段,但是在将Select设置为可编辑时遇到了问题。

我有以下代码来初始化可编辑内容:

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

然后,我有一个javascript / jquery函数来从数据库中获取用户列表。 在函数中,我尝试了许多不同的事情。 因为它现在站在手动功能组装字符串在网站上指定的格式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'}”
据我所知,格式是正确的,但是当我单击可编辑表格单元格时出现错误:

未捕获到的SyntaxError:输入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

令人困惑的是,如果我复制该字符串值并将其直接放入jeditable的data参数中,则它可以正常工作。 我什至创建了一个仅返回该文字字符串的函数,并且效果很好。

例如,替换函数内容如下:

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

这很好。

我不是javascript专家,因此非常感谢您的帮助。

您应该像这样将ajax请求的类型从异步更改为同步:

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

我试图从服务器返回您的json,它可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM