You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Mark Li (JIRA)" <de...@myfaces.apache.org> on 2010/03/31 17:17:27 UTC
[jira] Commented: (MYFACES-2637) Serious Bug! ajax cant work using
multiple forms.
[ https://issues.apache.org/jira/browse/MYFACES-2637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851902#action_12851902 ]
Mark Li commented on MYFACES-2637:
----------------------------------
i like myfaces jsf2, but the debugging takes me too much time. i spend the whole afternoon and night to locate the problem.
> Serious Bug! ajax cant work using multiple forms.
> -------------------------------------------------
>
> Key: MYFACES-2637
> URL: https://issues.apache.org/jira/browse/MYFACES-2637
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-314
> Affects Versions: 2.0.0-beta-3
> Environment: tomcat 6.0.20, java 1.6 (mac osx)
> Reporter: Mark Li
> Priority: Blocker
> Original Estimate: 3h
> Remaining Estimate: 3h
>
> I am using multiple forms. the second form can submit correctly first time, but when you submit again, the ajax cant work.
> you can try following code, first time the form f1 can reRend out1, but then form f1 cant submit any more.
> test.jspx:
> <h:head>
> </h:head>
> <h:body>
> <h:outputScript name="jsf.js" library="javax.faces" target="head"/>
>
> <h:form id="f0">
> </h:form>
> <h:form id="f1">
> <h:inputText value="#{TestBean.value}"/>
> <h:outputText id="out1" value="#{TestBean.value}"/>
> <h:commandButton value="click me" onclick="jsf.ajax.request(this,event,{execute:'@form', render:'@form'});return false;"></h:commandButton>
> </h:form>
> </h:body>
> The reason i find is that:
> during the first time submit and ajax rendering, the form will lose <input type="hidden" id="javax.faces.ViewState"/> childnode. Then the following submit will not work.
> the code in jsf.js causes this problem:
> jsf.js:
> myfaces._impl.xhrCore._AjaxResponse.prototype.processUpdate = function (request, context, node) {
> if (node.getAttribute("id") == "javax.faces.ViewState") {
> sourceForm = document.forms.length > 0 ? document.forms[0] : null;
> ....
> }
> " sourceForm = document.forms.length > 0 ? document.forms[0] : null; " is wrong!
> when there is multiple forms, it will always find the first one.
> Please change this, thx.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.