这是正确的吗:当我在验证之前查询一个值(或者如果验证失败了),我必须使用getSubmittedValue();。一旦验证了该值,即使我在页面/控件后面的另一个验证中查询它,我也必须使用.getValue();,因为getSubmittedValue();在成功验证后返回null?
发布于 2012-06-19 08:45:13
有一种稍微简单一些的方法:如果您只是期望一个简单的单值字符串,只需调用:
var compare = firstField.getValueAsString();否则,打电话:
var compare = com.ibm.xsp.util.FacesUtil.convertValue(facesContext, firstField);前者无论如何都会调用后者,但显然是一个简洁的语法。这做了你想要的,还有更多:
发布于 2012-06-19 07:31:51
这个小片段使处理这一问题更加容易。它允许您只调用getComponentValue("inputText1")来获取值或submittedValue。
下面是供参考的函数:
function getComponentValue(id){
var field = getComponent(id);
var value = field.getSubmittedValue();
if( null == value ){
// else not yet submitted
value = field.getValue();
}
return value
}发布于 2012-06-19 07:23:17
找到答案了这里。因此,当您希望确保两个文本字段具有相同的值(用例:请重复您的电子邮件),并且第一个框已经有可能失败的验证时,您需要使用submittedValue,除非它是null,然后使用该值。第二个字段的验证表达式中的代码如下所示:
var firstField = getComponent("inputText1");
var compare = firstField.getSubmittedValue() || firstField.getValue();
compare == value;你一定要喜欢它。
https://stackoverflow.com/questions/11096143
复制相似问题