【问题标题】:EditBox fieldInput.getValue() and spacesEditBox fieldInput.getValue() 和空格
【发布时间】:2017-08-25 01:38:46
【问题描述】:

这就是问题所在。我有一个编辑框,我试图通过名为 Add 的按钮的 onClick 事件从服务器端 JavaScript 检索值。它一直工作到空间在值中,然后它什么也不检索。 onClick 事件代码如下:

println("Button Clicked");
try{
var forkNumberInput:com.ibm.xsp.component.xp.XspInputText = 
getComponent("forkNumberInput");
var forkNum = forkNumberInput.getValue();
viewScope.ForkNum = forkNum;
println(forkNum);
} catch(e){
println( Error in Add button: " + e.toString());
}

当文本中有空格时,viewScope 不会被填充,并且不会将任何内容写入服务器日志,即使是“单击按钮”也不会。没有错误写入服务器日志。

【问题讨论】:

    标签: xpages xpages-ssjs


    【解决方案1】:

    如果没有打印“Button Clicked”,最可能的原因是存在验证错误。添加一个显示错误控件以确保不是这种情况。

    【讨论】:

      【解决方案2】:

      我赞同 Paul 添加 Errors 控件的建议。除此之外:当您只想获取价值时,尽量避免使用getComponent()。 JSF 的思想,扩展到 XPage,是“数据绑定”。控件因其价值而绑定到某些数据源,并且您与这些数据源进行交互。 getComponent() 是在您需要操作其他任何东西时使用的。

      所以你可以去绑定你的控制范围变量viewScope.forkNum,你就完成了。然后,您的按钮会从那里获取值并执行它需要执行的操作。

      总而言之:控件想要被绑定。数据存在于模型中(而非控件)

      【讨论】:

        【解决方案3】:

        谢谢保罗 - 你把我引向了正确的方向。原来在 Properties > data > validators 下有一个 validateConstraint。我删除了 validateConstraint 并开始工作。当您将设计元素从一个自定义控件复制到另一个时,就会发生这种情况。

        【讨论】:

        • 欢迎来到 Stack Overflow。请接受 Pauls 答案并在此处添加您自己的答案作为对 Pauls 答案的评论(然后删除您自己的答案)
        猜你喜欢
        • 2020-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-20
        • 2013-05-05
        相关资源
        最近更新 更多