2009-06-10 5 views
0

Je veux accéder à la valeur 'name' d'un formulaire que j'ai en utilisant document.write (document.getElementById ('listing'). Name);Problème Javascript pour accéder à la valeur du nom du formulaire

Cela ne renvoie aucun résultat que j'ai trouvé étrange. Ce qui est encore plus étrange est la suivante.

Il ne ramènera "NordstromListing" que lorsque je me débarrasserai de tout ce qui se trouve sous box4. Je n'ai absolument aucune idée de pourquoi c'est. Si quelqu'un pouvait signaler ce que je fais de mal, j'apprécierais cela.

Merci!

<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> 
+0

Plus important encore, je pense, * où * essayez-vous d'exécuter ce doc.write? et pourquoi? – annakata

Répondre

0

Essayez ceci:

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

Ne fait rien. – asdfasdfasdfasdf

1

essayer?

<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 pour moi ^^

+0

(juste pour être précis, ce code vous enverra tout votre nom dans votre document en fonction du moment où vous appelez le script ^^ pour cette raison et comme José vous feriez mieux d'utiliser alert que doc.write ...) – Ar3s

+0

mieux maintenant, utilisez jQuery, j'étais un imbécile, je ne connaissais pas cette grandeur! Cela rend tout si facile avec un arbre voyageant d'une manière élégante Xpath! J'aime ça ! – Ar3s

0

si vous essayez d'accéder à l'élément par son nom sous une forme que vous pouvez simplement utiliser ce

<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> 
+0

Je ne pense pas qu'il essaie d'obtenir un élément par son nom mais d'obtenir le nom de l'élément (ce qui est étrange mais les plus belles découvertes proviennent d'idées bizarres; p) – Ar3s

0

Si vous êtes après le nom du formulaire , cela fonctionne (même si cela semble un peu redondant).

document.NordstromListing.name 

Si vous êtes après la valeur de l'un des champs de formulaire, vous pouvez le faire comme ceci:

document.NordstromListing.msrp.value 
0

Essayez ceci: var my_link = document.forms [ 'myform']. éléments ['mylink']. value;

Questions connexes