0

I want to access the 'name' value of a form I have by using document.write(document.getElementById('listing').name);

This doesn't output anything which I found odd. What is even more odd is the following.

It will only bring back "NordstromListing" when I get rid of everything underneath box4. I have absolutely no clue to why that is. If anybody could point out what I'm doing wrong, I would appreciate that.

Thanks!

<form action="NordstromListing.php" id="listing" name="NordstromListing" method="POST" onSubmit="return validate_form ( );">

            <label>Enter Item Number:&nbsp;</label> <input type="text" size="15" name="itemnum" />
            <p>Verify Item Number: <input type="text" size="15" name="itemnumverify" /></p>

            <label>MSRP Price: &nbsp; $ &nbsp; <input type="text" size="15" id ="msrp" name="msrp" onBlur="discount()" onKeyup="discount()" onChange="discount(.90)"></input>
                <br />
            <label>Discounted Price: $ <input readonly type="text" size="15" id="edprice" name="edprice"></input>
                <br />

            <label>Item Category: </label><select name="itemtype" class="itemcat" onchange="if (this.selectedIndex==1){this.form['box'].style.visibility='visible'}else {this.form['box'].style.visibility='hidden'}; 
            if (this.selectedIndex==2){this.form['box2'].style.visibility='visible'}else {this.form['box2'].style.visibility='hidden'};
            if (this.selectedIndex==2){this.form['box25'].style.visibility='visible'}else {this.form['box25'].style.visibility='hidden'};
            if (this.selectedIndex==3){this.form['box3'].style.visibility='visible'}else {this.form['box3'].style.visibility='hidden'};
            if (this.selectedIndex==4){this.form['box4'].style.visibility='visible'}else {this.form['box4'].style.visibility='hidden'};
            if (this.selectedIndex==5){this.form['box5'].style.visibility='visible'}else {this.form['box5'].style.visibility='hidden'};
            if (this.selectedIndex==6){this.form['box6'].style.visibility='visible'}else {this.form['box6'].style.visibility='hidden'};
            if (this.selectedIndex==7){this.form['box7'].style.visibility='visible'}else {this.form['box7'].style.visibility='hidden'};
            if (this.selectedIndex==8){this.form['box8'].style.visibility='visible'}else {this.form['box8'].style.visibility='hidden'};">
            <option value="">Select one</option>
            <option value="Men's top">Men's Top</option>
            <option value="Men's Bottoms">Men's Bottoms</option>
            <option value="Men's Sneakers">Men's Sneakers</option>
            <option value="Lady's Top">Lady's Top</option>
            <option value="Ladys Dress">Lady's Dress</option>
            <option value="Lady's Bottoms">Lady's Bottoms</option>
            <option value="Lady's Shoes">Lady's Shoes</option>
            <option value="Accessory / Other">Accessory(Other)</option>
            </select>

            <br />

            <span>Item Size: </span><select class="reqd" style="visibility:hidden;" type="text" name="box">
            <option value="">Select</option>
            <option value="Small">Small</option>
            <option value="Medium">Medium</option>
            <option value="Large">Large</option>
            <option value="X-Large">X-Large</option>
            <option value="XX-Large">XX-Large</option>
            </select>

            <select class="reqd" style="visibility:hidden;" type="text" name="box2">
            <option value="">Waist</option>
            <option value="28">28</option>
            <option value="29">29</option>
            <option value="30">30</option>
            <option value="31">31</option>
            <option value="32">32</option>
            <option value="33">33</option>
            <option value="34">34</option>
            <option value="35">36</option>
            <option value="36">37</option>
            <option value="37">38</option>
            </select>

            <select class="reqd2" style="visibility:hidden;" type="text" name="box25">
            <option value="">Length</option>
            <option value="28">28</option>
            <option value="29">29</option>
            <option value="30">30</option>
            <option value="31">31</option>
            <option value="32">32</option>
            <option value="33">33</option>
            <option value="34">34</option>
            <option value="36">36</option>
            </select>

            <select class="reqd" style="visibility:hidden;" type="text" name="box3">
            <option value="">Select</option>
            <option value="7">7</option>
            <option value="7.5">7.5</option>
            <option value="8">8</option>
            <option value="8.5">8.5</option>
            <option value="9">9</option>
            <option value="9.5">9.5</option>
            <option value="10">10</option>
            <option value="10.5">10.5</option>
            <option value="11">11</option>
            <option value="11.5">11.5</option>
            <option value="12">12</option>
            <option value="12.5">12.5</option>
            <option value="13">13</option>
            </select>

            <select class="reqd" style="visibility:hidden;" type="text" name="box4">
            <option value="">Select</option>
            <option value="X-Small">X-Small</option>
            <option value="Small">Small</option>
            <option value="Medium">Medium</option>
            <option value="Large">Large</option>
            <option value="X-Large">X-Large</option>
            </select>


            <select class="reqd" style="visibility:hidden;" type="text" name="box5">
            <option value="">Select</option>
            <option value="0">0</option>
            <option value="2">2</option>
            <option value="4">4</option>
            <option value="6">6</option>
            <option value="8">8</option>
            <option value="10">10</option>
            <option value="12">12</option>
            <option value="14">14</option>
            </select>

            <select class="reqd" style="visibility:hidden;" type="text" name="box6">
            <option value="">Select</option>
            <option value="24">24</option>
            <option value="25">25</option>
            <option value="26">26</option>
            <option value="27">27</option>
            <option value="28">28</option>
            <option value="29">29</option>
            <option value="30">30</option>
            <option value="31">31</option>
            <option value="32">32</option>
            </select>

            <select class="reqd" style="visibility:hidden;" type="text" name="box7">
            <option value="">Select</option>
            <option value="5">5</option>
            <option value="5.5">5.5</option>
            <option value="6">6</option>
            <option value="6.5">6.5</option>
            <option value="7">7</option>
            <option value="7.5">7.5</option>
            <option value="8">8</option>
            <option value="8.5">8.5</option>
            <option value="9">9</option>
            <option value="9.5">9.5</option>
            <option value="10">10</option>
            <option value="10.5">10.5</option>
            <option value="11">11</option>
            </select>


            <input class="reqd" style="visibility:hidden;" type="text" name="box8" size="20" value="Specify..."/>

            <br />

            <label>Item Color: </label><input class="reqd" name="itemcolor" type="text" size="16" />

            <br />

            <label>Link (Optional): </label><input name="link" type="text" size="16" />

            <br />
            <br />

            <input type="submit" value="Submit" />

            </form> 
1
  • More importantly I think, where are you trying to exec this doc.write? and why? Commented Jun 12, 2009 at 9:25

5 Answers 5

1

try this ?

<script type="text/javascript">
    x=document.getElementsByTagName('form');

    for(i=0;i<x.length;i++)
    {
        document.write(x.item(i).attributes['name'].name);
        document.write(" = ");
        document.write(x.item(i).attributes['name'].value);
        document.write("<br />");
    }

</script>

Works for me ^^

Sign up to request clarification or add additional context in comments.

2 Comments

(just to be precise this code will output you all your form namessomewhere in your document depending on when you call the script ^^ for this reason and as José does you'd better use alert than doc.write ...)
Even better now, use jQuery, I was a fool, I did not know this greatness ! It makes everything so easy with tree traveling in an elegant Xpath-like way ! I love it !
0

Try this:

document.write(document.getElementById('listing').getAttribute('name'));

Comments

0

if you are trying to access the element by name in a form you can simply use this

<html>
<head>
<script>
alert(f1.in1);  // formName.elementName
</script>
</head>
<body>
<form id='f1' name='f1'>
<input id='in1' name='in1' value='Hello'>
</form>
</body
</html>

1 Comment

I don't think he tries to get an element by it's name but to get the name of the element (which is odd but most awesome discoveries came from odd ideas ;p )
0

If you are after the name of the form, this works (although it seems a bit redundant).

document.NordstromListing.name

If you are after the value of one of the form fields, you can do it like this:

document.NordstromListing.msrp.value

Comments

0

Try this: var my_link = document.forms['myform'].elements['mylink'].value;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.