【问题标题】:ListBox Multi-Value String to ObjectListBox 多值字符串到对象
【发布时间】:2013-08-16 15:29:40
【问题描述】:

我有一个 ListBox,我需要将选择的选项数量限制为两个。我使用的是 8.5.2,所以不能使用 SSJS 自定义验证器,但我可以使用 Java 验证器。 Java 验证器收到了以逗号分隔的字符串形式的提交值。

如果值包含逗号,则会出现此问题。在这种情况下,如果我用逗号分割提交的值字符串,我的代码会认为选择的选项比实际选择的要多。

当值被写回底层 Notes 文档时,到 getValue() 的转换具有正确映射的值。因此,如果 getSubmittedValue() 是 ListBox 中包含逗号的单个选项,则 getValue() 给我一个元素而不是两个元素。

我的问题是如何重现 getSubmittedValue() 到 getValue() 的转换,以正确计算出选择了多少选项。

【问题讨论】:

  • 不要被昏迷分割。如果选项是独特的(没有选项可以作为另一个选项的子字符串找到),您可以将它们从提交的值中“删除”。前两名获胜。
  • 问题是 submitValue 用逗号分隔它们,据我所知,没有办法改变它。我无法控制选项是否包含逗号,因此选定的选项可能包含逗号。
  • 请提供一些sn-p和示例选项

标签: xpages


【解决方案1】:

Paul,您实际上可以控制逗号。该选项有一个显示字符串和一个值。您可以将逗号替换为例如# 稍后在保存之前检查是否在显示值的同一位置有一个 # ,然后保存它。

还有很多工作要做——所以不聪明。

另一种选择:一个一个取出可能的值:

  • 按大小对它们进行排序,最长的在前(这样可以避免将一个值包含在另一个值中搞砸(例如“Redboat”与“boat”)
  • 将它们从返回字符串中取出(如果删除有效,那么你有一个,当你击中第 3 个时停止)

....但可能最简单的方法是在一个小的客户端 JavaScript 中计算已检查=已检查的值

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多