2017-01-13 18 views
0

У меня есть страница xhtml, и я хочу вызвать функцию javascript в a4j: commandLink. Я не знаю почему, но метод javascript не вызывается. Я попытался написать функцию в .js-файл, используя «ui: define», но тем не менее я не могу назвать этот метод. Это что-то, потому что оно не входит в жизненный цикл.Как вызвать функцию javascript в jsf?

страница XHTML выглядит следующим образом:

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
xmlns:rich="http://richfaces.org/rich" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:a4j="http://richfaces.org/a4j" 
xmlns:h="http://java.sun.com/jsf/html"> 

<h:head> 
<script type="text/javascript"> 
function myFunction(){ 
    alert("Hello World!"); 
    } 
</script> 
</h:head> 
<h:body> 
    <h:panelGrid columns="2"> 
     <h:outputText value="Choose the produce type:" /> 
     <rich:inplaceSelect value="#{selectedBean.currentType}" 
      valueChangeListener="#{selectedBean.valueChanged}" 
      defaultLabel="Click here to select"> 
      <f:selectItems value="#{selectedBean.firstList}" /> 
      <a4j:ajax event="change" reRender="items, label" 
       ajaxSingle="true" oncomplete="myFunction()"/> 
       <a4j:log></a4j:log> 
     </rich:inplaceSelect> 
     <a4j:outputPanel id="label"> 
      <h:outputText value="Choose concrete product:" 
       rendered="#{not empty selectedBean.secondList}" /> 
     </a4j:outputPanel> 
     <a4j:outputPanel id="items"> 
      <rich:inplaceSelect value="#{selectedBean.currentItem}" 
       rendered="#{not empty selectedBean.secondList}" 
       defaultLabel="Click here to select"> 
       <f:selectItems value="#{selectedBean.secondList}" /> 
      </rich:inplaceSelect> 
     </a4j:outputPanel> 
    </h:panelGrid> 

</h:body> 

+0

Какой из них не называется? 'OnComplete = "туРипсЫоп()"'? Затем попробуйте прямое оповещение прямо в нем. Если это тоже не вызвано, есть проблема, которая не связана с javascript. Разбейте свою проблему! – Kukeltje

+1

«Я хочу вызвать функцию javascript в a4j: commandLink». Но вы дали нам код с 'rich: inplaceSelect'. Что тогда? –

+0

Эй, я не могу вызвать alert() даже myFunction(). – 5A9U

ответ

0

Добавить точку с запятой, когда вы вызываете функцию Java Script.

oncomplete="myFunction();" 
+0

Вы пытались понять, имеет ли это значение? Насколько я знаю, это не – Kukeltje

+0

yep. У меня была такая же проблема, и мне было немного разобраться в этом. такая пустая трата времени –

+0

Уверен, что это также проблема в простой jsf f: ajax? – Kukeltje