You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Werner Punz (Jira)" <de...@myfaces.apache.org> on 2023/10/31 12:50:00 UTC

[jira] [Commented] (MYFACES-4636) Using f:param + f:ajax onvent results in an error

    [ https://issues.apache.org/jira/browse/MYFACES-4636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17781339#comment-17781339 ] 

Werner Punz commented on MYFACES-4636:
--------------------------------------

This seems to be an issue in the java renderer, this is not syntatically correct, onevent wants a function. There seems to be something going wrong with the params rendering onEvent: testJsParams is definitely wrong here!

 

> Using f:param + f:ajax onvent results in an error
> -------------------------------------------------
>
>                 Key: MYFACES-4636
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4636
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.3-next-M8
>            Reporter: Vitaly Sidorov
>            Priority: Major
>         Attachments: sample.zip
>
>
> *Steps to reproduce:*
>  - create xhtml with f:param and f:ajax onevent like this:
>  
> {code:html}
> <h:form prependId="false">
>     <h:commandLink action="#{sampleBean.doAction}">
>         <h:outputText value="Click Me!"/>
>         <f:param name="var1" value="NEW VALUE"/>
>         <f:ajax event="click"
>                 execute="@this"
>                 onevent="testJs">
>         </f:ajax>
>     </h:commandLink>
> </h:form>
> <script>
>     //<![CDATA[
>     function testJs(data) {
>         if (data.status === 'success') {
>             alert("Success click")
>         }
>     }
>     //]]>
> </script>
> {code}
>  
>  - click on "Click me"
>  - get an error in the console: "{color:#FF0000}Uncaught SyntaxError: Unexpected token ':' (at index.xhtml:9:868){color}"
> *The reason:*
> Generated page code by M7 build:
> {code:javascript}
> jsf.util.chain(this, event,function(event){myfaces.ab(this,event,'click','j_id_i','',{'onevent':testJs,'var1':'NEW VALUE'})}); return false;
> {code}
> Generated page code by M8 build with *bad JS* (look at {*}testJsparams{*}):
> {code:javascript}
> jsf.util.chain(this, event,function(event){myfaces.ab(this,event,'click','j_id_i','',{'onevent':testJsparams:{'var1':'NEW VALUE'}})}); return false;
> {code}
> *I've attached an archive with an example.*



--
This message was sent by Atlassian Jira
(v8.20.10#820010)