2017-08-24 43 views
0

这是问题。我有一个编辑框,我试图通过名为Add的按钮的onClick事件通过服务器端JavaScript检索值。它的工作原理直到空间的价值,然后它没有检索任何东西。代号为的onclick事件如下:EditBox fieldInput.getValue()和空格

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没有得到填充,没有数据被写入到服务器日志中甚至没有“按钮被点击”的文字。没有错误写入服务器日志。

回答

4

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

0

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

+1

欢迎使用堆栈溢出。请接受Pauls答案,并在此添加您自己的答案,作为对Pauls答案的评论,然后删除您自己的答案) –

2

我第二保罗的建议添加错误控制。此外:尽量避免使用getComponent()当你想要做的就是抓住价值。 JSF扩展到XPages的想法是“数据绑定”。控件绑定到某些数据源以获取其值,并与这些控件进行交互。 getComponent()是为了在您需要操作其他任何东西时使用。

所以你会去绑定你的控制范围变量viewScope.forkNum,你就完成了。你的按钮然后从那里获取价值并做它需要做的事情。

所以总之:控件想要绑定。数据存在模型中(不是控件)