首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getSubmittedValue()与getValue()

getSubmittedValue()与getValue()
EN

Stack Overflow用户
提问于 2012-06-19 07:17:47
回答 3查看 4.1K关注 0票数 1

这是正确的吗:当我在验证之前查询一个值(或者如果验证失败了),我必须使用getSubmittedValue();。一旦验证了该值,即使我在页面/控件后面的另一个验证中查询它,我也必须使用.getValue();,因为getSubmittedValue();在成功验证后返回null?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-19 08:45:13

有一种稍微简单一些的方法:如果您只是期望一个简单的单值字符串,只需调用:

代码语言:javascript
复制
var compare = firstField.getValueAsString();

否则,打电话:

代码语言:javascript
复制
var compare = com.ibm.xsp.util.FacesUtil.convertValue(facesContext, firstField);

前者无论如何都会调用后者,但显然是一个简洁的语法。这做了你想要的,还有更多:

  1. 如果尚未验证该值,则返回提交的值。
  2. 如果验证已经通过,则在任何转换器和/或内容筛选器处理完该值后返回该值,特别是在试图比较两个字段值的情况下,这应确保两个值都已被正确裁剪,等等,因此,与仅比较原始提交的值相比,返回假正数的可能性较小。
票数 2
EN

Stack Overflow用户

发布于 2012-06-19 07:31:51

这个小片段使处理这一问题更加容易。它允许您只调用getComponentValue("inputText1")来获取值或submittedValue。

下面是供参考的函数:

代码语言:javascript
复制
function getComponentValue(id){
  var field = getComponent(id);
  var value = field.getSubmittedValue(); 
  if( null == value ){ 
         // else not yet submitted 
         value = field.getValue(); 
  }
 
  return value
}
票数 3
EN

Stack Overflow用户

发布于 2012-06-19 07:23:17

找到答案了这里。因此,当您希望确保两个文本字段具有相同的值(用例:请重复您的电子邮件),并且第一个框已经有可能失败的验证时,您需要使用submittedValue,除非它是null,然后使用该值。第二个字段的验证表达式中的代码如下所示:

代码语言:javascript
复制
var firstField = getComponent("inputText1");
var compare = firstField.getSubmittedValue() || firstField.getValue();
compare == value;

你一定要喜欢它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11096143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档