myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Li (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-2637) Serious Bug! ajax cant work using multiple forms.
Date Tue, 06 Apr 2010 02:06:27 GMT

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

Mark Li commented on MYFACES-2637:
----------------------------------

thanks for your work,
I will try this fix. and post a result when i finish.

Mark


> 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.


Mime
View raw message