Is that correct:
When I query a value before validation (or if validation failed) I have to use getSubmittedValue();
. Once the value is validated, even if I query it in another validation later in the page/control I have to use .getValue();
since getSubmittedValue();
returns null after successful validation?
问问题
4080 次
3 回答
3
这个 xsnippet可以更轻松地处理这个问题。它允许您调用getComponentValue("inputText1")
以获取值或提交的值。
这是供参考的功能:
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-19T07:31:51.250 回答
2
有一个稍微简单的方法:如果你只是期待一个简单的单值字符串,只需调用:
var compare = firstField.getValueAsString();
否则,请致电:
var compare = com.ibm.xsp.util.FacesUtil.convertValue(facesContext, firstField);
前者无论如何都调用后者,但显然是一种更简洁的语法。这可以满足您的需求以及更多功能:
- 如果该值尚未验证,则返回提交的值
- 如果验证已经通过,则在任何转换器和/或内容过滤器已对其进行处理后返回该值,因此特别是在您尝试比较两个字段值的情况下,这应确保两个值都已正确修剪等.,因此与仅比较原始提交的值相比,返回误报的可能性较小。
于 2012-06-19T08:45:13.213 回答
0
在这里找到了答案。因此,当您要确保 2 个文本字段具有相同的值(用例:请重复您的电子邮件)并且第一个框已经有可能失败的验证时,您需要使用提交的值,除非它为空,然后您使用该值. 第二个字段的验证表达式中的代码如下所示:
var firstField = getComponent("inputText1");
var compare = firstField.getSubmittedValue() || firstField.getValue();
compare == value;
你必须爱它。
于 2012-06-19T07:23:17.667 回答