0

我正在使用json2Html

  var template = {
            "tag": "tr",
            "children": [
              {
                "tag": "td",
                // "html": "<input type='radio' name='TenantID' value='${TenantID}' onclick='onTenantClick(event)'/>" // This works                
                "children": [
                {                          
                "tag": "input",
                "type": "radio",
                "name": "TenantID",
                "value": "${TenantID}",
                "onclick": "onTenantClick(event)"
                }
                ]                
              },
          ]
}; 

“html”部分有效。如果我将 radio 元素添加为子元素(子元素),我会得到TypeError: e.data.action.call is not a functiononclick 事件处理程序。

文档的示例 ( https://json2html.com/examples/ ) 显示如下:

"onclick":function(){
                        $(this).css("visibility","hidden");

但我想插入另一个 .js 文件中的函数名。

4

1 回答 1

0

json2html.com文档中所述,任何 on 事件都必须是函数。所以如果你想调用另一个函数,你需要像这样包装

var template = {
            "<>": "tr",
            "html": [
              {
                "<>": "td",               
                "html": [
                {                          
                "tag": "input",
                "type": "radio",
                "name": "TenantID",
                "value": "${TenantID}",
                "onclick": function(e) { onTenantClick(e.event); }
                }
                ]                
              },
          ]
}; 

请注意,“tag”已弃用并替换为“<>”,“children”已弃用并替换为“html”

于 2020-08-12T16:51:21.523 回答