【问题标题】:Issue with events and multipe custom controls on an xpagexpage 上的事件和多个自定义控件的问题
【发布时间】:2012-06-20 02:03:57
【问题描述】:

我在同一个 xpage 上遇到了多个自定义控件的问题,我想知道其他人是否也遇到了同样的问题。

这是创建问题的方法。

  1. 使用编辑框创建自定义控件。在编辑框的 onChange 事件中,只需获取它的值并将其存储在变量中即可。仅此而已。

  2. 创建一个 xPage 并在 xpage 上放置一个按钮。使用 SSJS 使按钮执行某些操作,这样您就知道它被按下了,就像在表单上设置字段的值一样。

  3. 将您创建的自定义控件多次放置在表单上。

  4. 显示 xpage 并更改 xpage 上的输入框之一的值。

发生在我身上的是该按钮每隔一段时间才起作用。如果自定义控件仅在 xpage 上放置一次,则该按钮每次都有效。如果编辑框中的 onChange 事件被移除,那么按钮每次都会起作用。

【问题讨论】:

  • 贴出示例代码,帮助你更容易。
  • 您是否尝试将 onChange 事件中的值分配给不同的变量(例如,使用客户端 ID 作为键)。它看起来像一个并发问题。
  • 它被简单地分配了一个本地值 var v = getComponent("inputText1").getValue();。奇怪的是,按钮事件将在您在编辑框中键入内容后“下一次”按下它时起作用。换句话说,输入一些东西,按下按钮(不起作用),再次按下按钮然后它就起作用了。只要您不再在编辑框中键入内容,按钮就会继续工作。它发生在 ie 和 ff 中。
  • 当 onChange 事件中没有代码只是 cmets 时,甚至似乎会出现问题。 “// 只是一个评论”导致了这个问题。 onChange 事件必须完全为空才能不发生问题。

标签: xpages


【解决方案1】:

只有当您的 onchange 事件中有 SSJS 执行完全刷新并且您的按钮执行部分刷新时,才会发生这种情况。如果您让 onchange 事件部分刷新,它应该可以工作。此外,看起来当您离开文本框时会触发 onchange 事件,因此当您更改它时,不要离开并按下按钮,它不再像您所说的那样工作。但它做到了!它只是触发了文本框的完全刷新 onchange 事件,因此从按钮“跳过”了该事件(由于完全刷新,按钮 onclick 事件将以某种方式获得一个新的 id)。

【讨论】:

  • 看起来就是这样。为什么它一开始我不知道。如果有某种符号或让它在设计器中更改颜色以让您知道刷新是打开的,那肯定会很好。
猜你喜欢
  • 1970-01-01
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多