首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jeditable:使用Selects时获取错误

jeditable:使用Selects时获取错误
EN

Stack Overflow用户
提问于 2012-12-12 16:41:35
回答 1查看 363关注 0票数 1

我用datatables.editable和Jeditable实现了Jeditable。我可以使用一个文本区域作为一个可编辑的字段,但我有问题,设置一个选择作为可编辑。

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

代码语言:javascript
运行
复制
oTable.makeEditable({  
    sUpdateURL: "../ReconService.asmx/UpdateUser",  
    "aoColumns": [  
        null,  
        null,  
        {  
            indicator: 'Updating user...",  
            tooltip: "Change user",  
            type: "select",  
            submit: "Save",  
            data: getUserFilterOptions()  
        } 
    ]   
});

然后我有一个javascript / jquery函数从DB获取用户列表。在这个功能中,我尝试了许多不同的东西。该函数目前的状态是手动将字符串组装成网站可编辑上指定的格式。

我的职能如下:

代码语言:javascript
运行
复制
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中的developer工具来逐步完成该函数,该函数返回以下字符串:

“{‘选择’:‘选择’,‘管理员’:‘管理员’,‘用户1’:‘用户1',’选定‘:’选择‘}”

据我所知,格式是正确的,但是当我单击可编辑的表格单元格时,会得到一个错误:

Uncaught :输入的意外结束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的数据参数中,它就能正常工作。我甚至创建了一个函数来返回这个文字字符串,它工作得很好。

例如,将函数的内容替换为:

代码语言:javascript
运行
复制
function getUserFilterOptions(){  
    return "{'Select':'Select','Administrator':'Administrator','User1':'User 1','selected':'Select'}"  
}  

这个很好用。

我不是javascript方面的专家,所以我们非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-12-12 18:03:00

您应该将ajax请求的类型从异步更改为同步,如下所示:

代码语言:javascript
运行
复制
function getUserFilterOptions() { 
  return $.ajax({  
    type:"POST",  
    contentType: "application/json; charset=utf-8",  
    url: "/url",  
    dataType: "json",  
    async: false,
  }).responseText;
}

我试图从服务器上返回您的json,结果成功了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13844441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档