首页 > 解决方案 > 问题通过 ajax 传递包含函数的 json2html

问题描述

我正在尝试将 XHR 请求的 responseText 分配给一个对象变量,然后我可以通过 json2html 传递该对象变量以创建表单。我遇到的问题是我传递的 json 具有分配给表单上项目的 onclick 事件的函数。这使我无法使用 JSON.parse() 转换 responseText 字符串,因为它在函数调用中出错。我知道如果我能够将它作为对象调用,json 将起作用,但它不会让我创建对象;我知道我可以使用 ready() 函数,但更愿意通过 json2html 调用传递函数。我想这是我忽略的简单事情,但需要一些帮助来弄清楚如何将字符串转换为可用格式。举个例子:

//works fine
var x= {
    "<>":"div",
    "class":"",
    "text":"test",  
    "onclick": function(
        {
            console.log("click")
        }
    };
    $('#content').json2html({},x);

    //does not work
    x=$.ajax({url:u});

    x.complete(function(){ 
    //responseText:
        {
            "<>":"div",  
            "class":"btn p-3 bg-white test",
            "text":"test",
            "onclick": function(){console.log("click")}
        }
//.responseText
        $('#content').json2html({},x["responseText"]);
 });
//.does not work

标签: json2html

解决方案


首先,您的 responseText 就是那个文本,请确保在将文本发送到 json2html 之前先将文本 jsonParse 转换为 json 对象。

其次,您将无法通过 ajax 传输 onclick 功能,这需要在客户端添加。


推荐阅读