Uploaded image for project: 'MyFaces Trinidad'
  1. MyFaces Trinidad
  2. TRINIDAD-713

Using "name" as the id for a component breaks form submission. "name" appears to be an undocumented reserved identifier.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2.2-core
    • 1.0.4-core
    • Components
    • None

    Description

      Using the trinidad-blank as an example, if the the id of the input field in "page1.jspx" is changed from:

      <tr:inputText label="Your name" id="input1" value="#

      {helloWorldBacking.name}" required="true"/>

      to:

      <tr:inputText label="Your name" id="name" value="#{helloWorldBacking.name}

      " required="true"/>

      nothing happens when the "press me" button is pushed (the form is not posted).

      The following JavaScript error is reported:

      Error ``TypeError: a0.split is not a function'' [xs] in file ``http://localhost:8080/trinidad/adf/jsLibs/Common1_2_2.js'', line 4512, character 0.

      In the code fragment below "a0" has been resolved to the HTMLFormElement, but apparently because the form contains a button element named "name", "a0.name" does not return the form name, but instead the button instance, and "split" is not a method on HTMLButtonElement.

      4861 if(!a0)
      4862 return false;
      4863 var a6=window["_"+_getJavascriptId(a0.name)+"Validator"];
      4864 if(a6==(void 0))

      function _getJavascriptId(a0)
      4511

      { 4512 return a0.split(':').join('_'); 4513 }

      Is there a way in JavaScript to avoid this name conflict? It does not seem reasonable it is illegal to add an element called "name" to a form.

      Attachments

        1. patchInvalidIdNameComponent.patch
          4 kB
          Leonardo Uribe

        Activity

          People

            adamwiner Adam Winer
            hanafey Mike Hanafey
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: