Getting reference to element with array-like attribute

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • laredotornado

    Getting reference to element with array-like attribute

    Hi,

    I have a number of INPUTs on my page that look like

    <input id="form_items[][prescription_nu mber]" name="form_item s[]
    [prescription_nu mber]" size="15" type="text" value="..." />

    How do I refer the last one of these on my page?

    Thanks, - Dave
  • Tim Williams

    #2
    Re: Getting reference to element with array-like attribute

    Your question is unclear. If you meant how do you get access to one of the
    inputs:

    document.getEle mentById("form_ items[][prescription_nu mber]")
    or
    document.yourFo rmName.elements["form_items[][prescription_nu mber]"]

    Tim

    "laredotorn ado" <laredotornado@ zipmail.comwrot e in message
    news:4d1c144b-9da3-4e23-81e6-5d8db957342f@w3 9g2000prb.googl egroups.com...
    Hi,
    >
    I have a number of INPUTs on my page that look like
    >
    <input id="form_items[][prescription_nu mber]" name="form_item s[]
    [prescription_nu mber]" size="15" type="text" value="..." />
    >
    How do I refer the last one of these on my page?
    >
    Thanks, - Dave

    Comment

    • laredotornado@zipmail.com

      #3
      Re: Getting reference to element with array-like attribute

      On Aug 13, 1:21 am, "Tim Williams" <timjwilliams at gmail dot com>
      wrote:
      Your question is unclear.  If you meant how do you get access to one ofthe
      inputs:
      >
      document.getEle mentById("form_ items[][prescription_nu mber]")
      or
      document.yourFo rmName.elements["form_items[][prescription_nu mber]"]
      >
      Tim
      >
      "laredotorn ado" <laredotorn...@ zipmail.comwrot e in message
      >
      news:4d1c144b-9da3-4e23-81e6-5d8db957342f@w3 9g2000prb.googl egroups.com...
      >
      >
      >
      Hi,
      >
      I have a number of INPUTs on my page that look like
      >
      <input id="form_items[][prescription_nu mber]" name="form_item s[]
      [prescription_nu mber]" size="15" type="text" value="..." />
      >
      How do I refer the last one of these on my page?
      >
      Thanks, - Dave- Hide quoted text -
      >
      - Show quoted text -
      Sorry for the confusion. What I meant to ask is, say I have a form
      like this:

      <form>
      <input id="form_items[][prescription_nu mber]" name="form_item s[]
      [prescription_nu mber]" size="15" type="text" value="..." />
      <input id="form_items[][prescription_nu mber]" name="form_item s[]
      [prescription_nu mber]" size="15" type="text" value="..." />
      <input id="form_items[][prescription_nu mber]" name="form_item s[]
      [prescription_nu mber]" size="15" type="text" value="..." />
      </form>

      How do I get a reference to the 3rd input field?

      Thanks, - Dave

      Comment

      • Tim Williams

        #4
        Re: Getting reference to element with array-like attribute


        Sorry for the confusion. What I meant to ask is, say I have a form
        >like this:
        <form>
        <input id="form_items[][prescription_nu mber]" name="form_item s[]
        [prescription_nu mber]" size="15" type="text" value="..." />
        <input id="form_items[][prescription_nu mber]" name="form_item s[]
        [prescription_nu mber]" size="15" type="text" value="..." />
        <input id="form_items[][prescription_nu mber]" name="form_item s[]
        [prescription_nu mber]" size="15" type="text" value="..." />
        </form>
        How do I get a reference to the 3rd input field?
        Thanks, - Dave
        *Literally* with those id's and names, or are you using
        "prescription_n umber" as a placeholder ? If they're literally like that then
        you should consider a different naming strategy.

        Your example:

        document.forms[0].elements[2]
        or more generally:
        document.forms[0].elements[document.forms[0].elements.lengt h-1]

        ....assuming that's the first form on the page and there are no other inputs
        you're not showing.

        Tim




        Comment

        • RobG

          #5
          Re: Getting reference to element with array-like attribute

          On Aug 14, 1:15 am, "laredotorn...@ zipmail.com"
          <laredotorn...@ gmail.comwrote:
          On Aug 13, 1:21 am, "Tim Williams" <timjwilliams at gmail dot com>
          wrote:
          >
          >
          >
          Your question is unclear.  If you meant how do you get access to one of the
          inputs:
          >
          document.getEle mentById("form_ items[][prescription_nu mber]")
          or
          document.yourFo rmName.elements["form_items[][prescription_nu mber]"]
          >
          Tim
          >
          "laredotorn ado" <laredotorn...@ zipmail.comwrot e in message
          >
          news:4d1c144b-9da3-4e23-81e6-5d8db957342f@w3 9g2000prb.googl egroups.com....
          >
          Hi,
          >
          I have a number of INPUTs on my page that look like
          >
          <input id="form_items[][prescription_nu mber]" name="form_item s[]
          [prescription_nu mber]" size="15" type="text" value="..." />
          >
          How do I refer the last one of these on my page?
          >
          Thanks, - Dave- Hide quoted text -
          >
          - Show quoted text -
          >
          Sorry for the confusion.  What I meant to ask is, say I have a form
          like this:
          >
          <form>
          <input id="form_items[][prescription_nu mber]" name="form_item s[]
          [prescription_nu mber]" size="15" type="text" value="..." />
          <input id="form_items[][prescription_nu mber]" name="form_item s[]
          [prescription_nu mber]" size="15" type="text" value="..." />
          <input id="form_items[][prescription_nu mber]" name="form_item s[]
          [prescription_nu mber]" size="15" type="text" value="..." />
          </form>
          >
          How do I get a reference to the 3rd input field?
          For this specific example:

          var name = 'form_items[][prescription_nu mber]';
          document.getEle mentsByName(nam e)[2];


          You could also do something like:

          var form = document.forms[0];
          var name = 'form_items[][prescription_nu mber]';
          form.elements[name][2];


          or more generally, if you want the last one:

          var form = document.forms[0];
          var name = 'form_items[][prescription_nu mber]';
          var inputs = form && form.elements[name];

          if (inputs && inputs.length 0) {
          var lastInput = inputs[inputs.length - 1];
          }


          Rather than relying on the form index, it would be better give your
          form a name or id and access it using:

          var form = document.forms[name];


          or

          var form = document.getEle mentById(id);


          respectively.


          --
          Rob

          Comment

          • laredotornado@zipmail.com

            #6
            Re: Getting reference to element with array-like attribute

            On Aug 13, 11:56 pm, RobG <rg...@iinet.ne t.auwrote:
            On Aug 14, 1:15 am, "laredotorn...@ zipmail.com"
            >
            >
            >
            >
            >
            <laredotorn...@ gmail.comwrote:
            On Aug 13, 1:21 am, "Tim Williams" <timjwilliams at gmail dot com>
            wrote:
            >
            Your question is unclear.  If you meant how do you get access to one of the
            inputs:
            >
            document.getEle mentById("form_ items[][prescription_nu mber]")
            or
            document.yourFo rmName.elements["form_items[][prescription_nu mber]"]
            >
            Tim
            >
            "laredotorn ado" <laredotorn...@ zipmail.comwrot e in message
            >
            >news:4d1c144 b-9da3-4e23-81e6-5d8db957342f@w3 9g2000prb.googl egroups.com....
            >
            Hi,
            >
            I have a number of INPUTs on my page that look like
            >
            <input id="form_items[][prescription_nu mber]" name="form_item s[]
            [prescription_nu mber]" size="15" type="text" value="..." />
            >
            How do I refer the last one of these on my page?
            >
            Thanks, - Dave- Hide quoted text -
            >
            - Show quoted text -
            >
            Sorry for the confusion.  What I meant to ask is, say I have a form
            like this:
            >
            <form>
            <input id="form_items[][prescription_nu mber]" name="form_item s[]
            [prescription_nu mber]" size="15" type="text" value="..." />
            <input id="form_items[][prescription_nu mber]" name="form_item s[]
            [prescription_nu mber]" size="15" type="text" value="..." />
            <input id="form_items[][prescription_nu mber]" name="form_item s[]
            [prescription_nu mber]" size="15" type="text" value="..." />
            </form>
            >
            How do I get a reference to the 3rd input field?
            >
            For this specific example:
            >
              var name = 'form_items[][prescription_nu mber]';
              document.getEle mentsByName(nam e)[2];
            >
            You could also do something like:
            >
              var form = document.forms[0];
              var name = 'form_items[][prescription_nu mber]';
              form.elements[name][2];
            >
            or more generally, if you want the last one:
            >
              var form   = document.forms[0];
              var name   = 'form_items[][prescription_nu mber]';
              var inputs = form && form.elements[name];
            >
              if (inputs && inputs.length 0) {
                var lastInput = inputs[inputs.length - 1];
              }
            >
            Rather than relying on the form index, it would be better give your
            form a name or id and access it using:
            >
              var form = document.forms[name];
            >
            or
            >
              var form = document.getEle mentById(id);
            >
            respectively.
            >
            --
            Rob- Hide quoted text -
            >
            - Show quoted text -
            Thanks, Rob for your detailed suggestions. I ended up going with the
            first one. - Dave

            Comment

            Working...