可以通过setTimeout()触发JSF表单验证吗?

时间:2016-08-30 08:15:53

标签: javascript jsf oracle-adf

我创建了一个带有一些输入文本字段的JSF表单。另外,我在JSF中添加了一个从bean调用的JavaScript函数。该函数所做的工作是显示一个组件,几秒钟后它应该隐藏它。以下是位于jsf和组件中的函数:

function func() {
    var comp = AdfPage.PAGE.findComponentByAbsoluteId("abc");
    comp.setVisible(true);
    setTimeout(function(){
      comp.setVisible(false);
    }, 5000);
}

<af:outputText value="Some EL text" id="abc" visible="false"/>

这是调用函数的支持bean代码:

FacesContext context = FacesContext.getCurrentInstance();
ExtendedRenderKitService erks =
    Service.getRenderKitService(context, ExtendedRenderKitService.class);

erks.addScript(context, "func();");

问题在于,当时间(在这种情况下为5000毫秒)结束时,组件隐藏,表单验证被触发,并且重置组件显示期间输入的数据。我不希望重置数据。任何想法为什么会以这种方式发生以及如何解决它?问题与setTimeout()函数有关,还是ADF特定的问题?

0 个答案:

没有答案