1

我正在尝试将 HDIV 集成到我现有的应用程序中。但我一直在解决以下问题。

用例: 1. 我有一个包含大量字段的大表单。当我更改下拉列表中的值时,我通过将所选值作为 URL 参数传递来进行 Ajax 调用。前任:

  1. $.get("http:://ajaxurl?dynamicParam=1", function(data) {/将新的 HTML 内容渲染到现有页面/});

  2. $.get("http:://ajaxurl?dynamicParam=2", function(data) {/将新的 HTML 内容渲染到现有页面**/}); 等等

问题: 当我在下拉列表中选择值时,在 ajax 参数中传递了不同的值,并且 HDIV 引发了 INVALID_PARAMETER_VALUE 错误。

我能看到的唯一解决方案是我需要提交带有 _MODIFIED_HDIV_STATE 值的整个表单。

但是,我不能提交整个表单(其中有大量的数据),以便在我的 Ajax 调用中只传递一个值。此外,我不能排除绕过 HDIV 验证的参数,因为我在许多地方的应用程序中都有相同的用例。

有没有办法将修改后的 HDIV 状态作为 AJAX 调用的一部分传递,就像我们在 FORM submit 中所做的那样?或者请建议我解决这个问题的方法。

请帮我解决这个问题。(在将 HDIV 集成到我的大部分应用程序中后,我被困在了中途)

4

1 回答 1

0

这是一个棘手的情况。您可能处于以下情况之一:

  • 如果您无法在服务器端知道参数的值,则只能将该参数定义为开始参数并跳过对该参数的验证:

如果您想跳过所有视图的验证:

<hdiv:startParameters>parameter1</hdiv:startParameters>

如果您想跳过对所需视图的验证:

<hdiv:paramsWithoutValidation>
    <hdiv:mapping url="url1" parameters="parameter1" />
</hdiv:paramsWithoutValidation>
  • 如果您可以在服务器端知道参数的值:

有两种选择:

  • 生成所有可能的链接,每个参数值一个,然后通过 JavaScript 选择您想要的链接。
  • 通过带有参数的表单执行 AJAX 调用。此参数将是具有所有可能值的选择。(推荐选项)

我希望它有所帮助。

于 2015-05-20T11:30:38.033 回答