spaces in select names

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

    spaces in select names

    Hi,

    I am a newbie to Internet programming. I have some questions about
    spacing in HTML control names and subsequently being able to access
    these input elements in JavaScript If you don't have time to read the
    whole message, the main question is can HTML form names have spaces in
    them and if so what is the syntax for accessing them using Javascript

    I have a Perl script which dynamically creates html and ultimately
    generates a form. The form contains dynamically generated radio
    buttons and select controls. The value of the radio value is the same
    name as the select control name but this is only way I get the name of
    the select controls because I know exactly how many radio buttons there
    are and I know the radio button name. (if unclear disregard:not
    crucial)

    Many of the control names contain spaces. When I try to access them in
    JavaScript through the DOM it doesn't work. Can I use spaces in input
    control names.?

    I have tried to save a Javascript value(which contains spaces) in a
    variable and then use this variable in another Javascript statement.
    For example;

    selectedSG = document.Allan. SGGroup[i].value;
    When I print selectedSG it returns the correct value.

    But then when I try to use selectedSG in my JavaScript to access the a
    select input it doesn't work:

    document.Allan. selectedSG.leng th

    I have tried to hard code the select control name and it works if the
    select name has no spaces: for example

    document.Allan. Fabric.length (where fabric is a select control name)
    and then I receive the correct length for the specific select control

    However if I try to hard code a select name that contains spaces it
    doesn't work, ie.

    document.Allan. another magnificent day.length

    Clearly this syntax is wrong but I've tried bracketing and single
    quotes around another magnificent day and it still doesn't work

    Thanks ahead,
    Larry

  • Lee

    #2
    Re: spaces in select names

    larry said:
    [color=blue]
    >Many of the control names contain spaces. When I try to access them in
    >JavaScript through the DOM it doesn't work. Can I use spaces in input
    >control names.?[/color]

    It should be trivial for you to replace spaces with underscores,
    which would make the names valid. You can access invalid names
    though, as in:

    document.Allan. elements["another magnificent day"].length

    Comment

    • Danny

      #3
      Re: spaces in select names



      CSS2 section 4.1.3:
      In CSS2, identifiers (including element names, classes, and IDs in
      selectors) can contain only the characters [A-Za-z0-9] and ISO 10646
      characters 161 and higher, plus the hyphen (-); they cannot start with a
      hyphen or a digit.

      This rule applies to most languages, js no exception, for object naming
      convention, all Form fieled are indeed passed to the server as variables,
      so, no spaces.


      Danny



      --
      Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

      Comment

      • ASM

        #4
        Re: spaces in select names

        larry wrote:[color=blue]
        > Hi,
        >
        > I am a newbie to Internet programming. I have some questions about
        > spacing in HTML control names and subsequently being able to access
        > these input elements in JavaScript If you don't have time to read the
        > whole message, the main question is can HTML form names have spaces in
        > them and if so what is the syntax for accessing them using Javascript[/color]

        document.forms['My Own Form'].elements['My Prefered Select'];
        [color=blue]
        > The value of the radio value is the same
        > name as the select control name but this is only way I get the name of
        > the select controls because I know exactly how many radio buttons there
        > are and I know the radio button name. (if unclear disregard:not
        > crucial)[/color]

        it is not at all a good idea to give same name to radios and selects
        how can you cleanly submit your form ?
        if not correct answer : not crucial :-)
        [color=blue]
        > selectedSG = document.Allan. SGGroup[i].value;
        > When I print selectedSG it returns the correct value.
        >
        > But then when I try to use selectedSG in my JavaScript to access the a
        > select input it doesn't work:
        >
        > document.Allan. selectedSG.leng th[/color]

        isn't it normal ?
        you do exactly same as writting directly the spaced name ...

        selectedSG = document.Allan. SGGroup[i].value;
        alert('select length = '+document.Alla n.elements[selectedSG].length);

        as selectedSG is a variable, no need single quotes in brackets
        [color=blue]
        > However if I try to hard code a select name that contains spaces it
        > doesn't work, ie.
        >
        > document.Allan. another magnificent day.length[/color]

        alert('select length = ' +
        document.Allan['another magnificent day'].length);
        or
        alert('select length = ' +
        document.forms['Allan'].elements['another magnificent day'].length);
        or
        var A = document.forms['Allan'];
        alert('select length = ' +
        A.elements[A.elements['SGGroup'][i].value].length);
        [color=blue]
        > Clearly this syntax is wrong but I've tried bracketing and single
        > quotes around another magnificent day and it still doesn't work[/color]

        something wrong with a not necessary point ... no ?


        --
        Stephane Moriaux et son [moins] vieux Mac

        Comment

        Working...