2014-10-01 106 views
0

我使用jsf 1.2,richfaces 3.3.3。我已经写了JavaScript功能,并希望将它用作a4j:commandButton上的onclick。JSF 1.2 + Javascript + AJAX

功能:

function simpleFunction(){ 
    var x = document.getElementById('check').value; 
    if(x != null){ 
     alert("NOT NULL"); 
    } 
} 

形式:

<h:form> 
     <h:inputText id="check" value="myvalue" style="display: none"/> 
     <h:outputText value="#{crossReferenceMsg.min3}" style="font-size: 11px; color:red; font-weight: bold"/><br/> 
     <h:outputLabel value="#{crossReferenceMsg.searchName}" for="tbSearchFilter" 
         style="font-size: 14px;font-weight: bold;"/> 
     <h:inputText id="tbSearchFilter" value="#{CrossReferenceBean.searchText}"> 
     </h:inputText> 
     <a4j:commandButton id="btnSearchCrossReference" 
          onclick="simpleFunction()" 
          action="#{CrossReferenceBean.search}" 
          value="#{crossReferenceMsg.search}" 
          reRender="dvFilters"/> 
     <rich:messages for="tbSearchFilter"/> 
     <rich:hotKey key="return" 
        handler="#{rich:element('btnSearchCrossReference')}.click()" 
        selector="#dvSearchCrossReference"/> 
    </h:form> 

但它不工作 - 在GoogleChrome调试器,我可以看到,变量x =不确定。我在哪里犯了一个错误?

回答

0

prependId="false"添加到您的h:form

在这种情况下,默认情况下,表单id(类似于j_idt ...,它由jsf自动设置)预先添加到嵌套在表单中的所有组件ID。所以你的实际h:inputText ID不是“检查”。你可以看到,如果你检查你的页面的HTML源。