0

我正在使用 Knockout 模板绑定动态构建 HTML 表单。每个表单定义都有自己的一组用于自定义验证的 JavaScript 函数。

如何将 java 脚本代码(函数)呈现到页面,以便在验证期间调用它们?动态插入 JavaScript 代码的原因是因为它们是用户定义的。

最终结果应该是:

<script type="text/javascript">
   function a() {};  // inserted dynamically
   function b() {}:  // inserted dynamically
   ...
</script>

当自定义验证只使用一个 JavaScript 函数时,“没问题”——我可以使用 eval() 命令来执行它。但是,当函数需要引用另一个函数时,事情就会变得更加复杂。我这里有两个问题:

  1. 我不应该使用 eval() 命令,因为它速度慢且不安全。
  2. 当一个函数需要引用另一个函数时,即使 eval() 选项也不会帮助我。

所以我想如果可以在脚本标签内动态呈现所有 JavaScript 函数,然后我可以使用 [Window].[functionName] 而不是使用 eval() 命令来引用这些函数。

让我强调一点,这些 JavaScript 函数并非都位于一个单独的文件中。它们分散在由服务器构建的复杂 JSON 对象中,该对象代表将驱动动态表单加载的表单定义。有许多不同的表单定义。

4

1 回答 1

0
  1. 在表单模板中创建脚本标记。
  2. 连接来自 JSON 对象的 JavaScript 函数并将它们存储在字符串中。
  3. 使用 JQuery 将包含 JavaScript 函数的变量插入脚本标记。
于 2015-04-23T00:01:20.900 回答