5 Replies Latest reply on Jun 1, 2009 12:06 PM by g_s_noe

    reRendering in FF3 not working

    mayerle

      Hi,

      I´m using a MenuItem in order to rerender an a4j:include component per AJAX. Everything works fine in IE7, but FF3 doesn`t rerender the include component.

      I`m using neko-parser due to performance reasons. With standard tidy-parser, it works in all browser.

      MenuItem and include-Component are in different forms (also doesn`t work if they are in the same form).

      RF-Version is 3.3.1

      MenuItem-Code:

      ...
      <rich:menuItem
       id="boardpointCreate"
       reRender="contentInclContainer"
       ajaxSingle="true"
       submitMode="ajax"
       action="#{menuBean.doMenuAction}">
       <a4j:actionparam
       name="currentPage"
       assignTo="#{menuBean.currentPage}"
       value="./include/default.xhtml" />
      </rich:menuItem>
      ...
      


      Include-Code:

      ...
      <a4j:form id="contentForm">
       <a4j:outputPanel id="contentInclContainer" layout="block">
       <a4j:include
       id="contentInclude"
       viewId="#{menuBean.currentPage}" />
       </a4j:outputPanel>
      </a4j:form>
      ...
      


      web.xml-Settings:

      <context-param>
       <param-name>org.ajax4jsf.xmlparser.ORDER
       </param-name>
       <param-value>NEKO</param-value>
      </context-param>
      <context-param>
       <param-name>org.ajax4jsf.xmlparser.NEKO
       </param-name>
       <param-value>.*\..*</param-value>
      </context-param>
      


      a4j-log:

      ...
      debug[13:05:53,077]: call getElementById for id= org.ajax4jsf.queue_script
      debug[13:05:53,077]: Update page part from call parameter for ID contentForm:contentInclContainer
      debug[13:05:53,078]: call getElementById for id= contentForm:contentInclContainer
      error[13:05:53,078]: New node for ID contentForm:contentInclContainer is not present in response
      debug[13:05:53,078]: call getElementById for id= org.ajax4jsf.oncomplete
      debug[13:05:53,078]: Processing updates finished, no oncomplete function to call
      
      


        • 1. Re: reRendering in FF3 not working

          I upgraded from RichFaces 3.3.0 to RichFaces 3.3.1 and I am seeing similar behavior with IE 7.0.5730.13 as well as Firefox 3.0.10 where the reRender attribute is not working. If I roll back to RichFaces 3.3.0 the reRender attribute works again.

          I'm using Tomcat 6, JDK 6 and JSF 1.2.

          I have also noticed that the "noEscape" attribute in the a4j:actionParam tag is not working when set to "true" (Javascript code is not properly evaluated).

          In my case I am attaching a4j:support to h:inputText components:

          <h:inputText id="mInputName" value="#{mailController.mailFromName}" maxlength="50" size="30" >
           <a4j:support event="onblur" action="#{mailController.validateSubmitAction}" limitToList="true" reRender="mailFormContainer,msgSubmitBtn,phoneErrorDiv,emailErrorDiv,nameErrorDiv,messageErrorDiv">
           <a4j:actionparam name="mailFromName" value="document.getElementById('bodyContainerInclude:bodyPanelInclude:sendMessageForm:mInputName').value" assignTo="#{mailController.mailFromName}" noEscape="true"/>
           <a4j:actionparam name="mailFromEmail" value="document.getElementById('bodyContainerInclude:bodyPanelInclude:sendMessageForm:mInputEmail').value" assignTo="#{mailController.mailFromEmail}" noEscape="true"/>
           <a4j:actionparam name="mailFromPhone" value="document.getElementById('bodyContainerInclude:bodyPanelInclude:sendMessageForm:mInputPhone').value" assignTo="#{mailController.mailFromPhone}" noEscape="true"/>
           <a4j:actionparam name="mailFromReplyPref" value="document.getElementById('bodyContainerInclude:bodyPanelInclude:sendMessageForm:mInputReplyPreference').value" assignTo="#{mailController.selectedMailReplyPreference}" noEscape="true"/>
           <a4j:actionparam name="mailFromMessage" value="document.getElementById('bodyContainerInclude:bodyPanelInclude:sendMessageForm:mInputMessage').value" assignTo="#{mailController.mailFromMessage}" noEscape="true"/>
           </a4j:support>
          </h:inputText>
          <div style="margin-left:5px;display:inline;" id="nameErrorDiv"><h:graphicImage value="/icons/exclamation.png" style="margin-right:5px;" rendered="#{mailController.displayNameError}"/> <h:outputText value="#{msgs.contacts_modal_error_name}" rendered="#{mailController.displayNameError}"/> </div>
          
          


          I know for sure the Ajax request is making it to the server.

          I'm getting a bunch of JavaScript errors in IE7:

          From jquery.js.jsf via the MS Javascript Debugger so who knows if it actually means something:
          // Object doesn't support this property or method
          if(div.getElementsByClassName("e").length===0)
          


          Any thougths?

          • 2. Re: reRendering in FF3 not working
            ilya_shaikovsky

            Do you have JQuerry included by your own links? Maybe the JQuerry version which you using standalone conflicts with internal one?

            • 3. Re: reRendering in FF3 not working
              mayerle

              I don`t have JQuery included.

              The Problem only exists with the neko-parser defined. Working with Tidy or None, everything is fine in all browsers.

              • 4. Re: reRendering in FF3 not working
                mayerle

                Okay seems to run perfect with newest neko-parser version 1.9.12 ...


                Greets

                • 5. Re: reRendering in FF3 not working

                   

                  "ilya_shaikovsky" wrote:
                  Do you have JQuerry included by your own links? Maybe the JQuerry version which you using standalone conflicts with internal one?


                  I don't think I have jQuery linked from any other resources.

                  I'm seeing two errors related to line 101 in AjaxScript.jsf (getting errors from FireBug):

                  Error: element.selectNodes is not a function
                  Line 101:
                  elementname+"\"]");}


                  Error:
                  missing } after property list
                  http://localhost:8080/oursite/a4j/g/3_3_1.GAorg.ajax4jsf.javascript.AjaxScript.jsf
                  Line 101