2009-10-29 6 views
0

Je ne parviens pas à comprendre pourquoi il ne s'agit pas d'une valeur de suivi pour CompanyType. Si je supprime le bloc CompanyType de la vérification, cela fonctionne bien. Il vérifie même avec succès CompanyName, mais il échoue à CompanyType.[HTML/JavaScript]: getElementByID n'obtient pas de valeur

Voici le code:

<script type="text/javascript> 

//Check Company Name 
if (document.getElementById("CompanyName").value == "") 
{ 
    alert("Please enter company name"); 
    document.getElementById("CompanyName").focus(); 
    return false;        
} 

//Check Company Type       alert(document.getElementById("CompanyType").value); 
if (document.getElementById("CompanyType").value.substr(0,6) == "Select") 
{ 
    alert("Please select company type"); 
    document.getElementById("CompanyType").focus(); 
    return false;        
} 
</Script> 

Les lignes suivantes suivent dans le code HTML dans le fichier:

<td align="left" valign="top"> 
<input maxlength="40" size="22" name="CompanyName" id="CompanyName" style="width:150px;"> 
</td> 
</tr> 
<tr> 
<td height="38" colspan="2" valign="middle" id="form"> 
<span class="red">*</span> 
<span class="style2">Company Type:</span> 
</td> 

<td align="left"> 
<select id=" " class="style3" size="1" name="CompanyType" style="width:150px;">                  <option value="" selected="selected">Select One</option>                    </select></td> 

Répondre

3

Il vous manque attribut id dans CompanyType select

<select id=" " class="style3" size="1" name="CompanyType" style="width:150px;"> 
      ^^^ 

devrait être

<select id="CompanyType" class="style3" size="1" name="CompanyType" style="width:150px;"> 

Et David Dorward a un point en ce qui concerne l'ordre de ce qui précède.
HTML d'abord, <script> après.

Il est préférable d'exécuter JS lorsque le document est prêt. Envisagez d'utiliser jQuery.

+0

Extrêmement désolé. C'est là dans le code original. – RKh

+1

Alors la réponse de David Darward est la solution pour vous. Assurez-vous d'appeler les objets lorsqu'ils sont créés, pas avant. –

+0

@Michal: Merci pour le conseil précieux. Je modifie en conséquence. – RKh

2

Vous essayez d'obtenir l'élément avant qu'il existe. La plupart du script est ainsi après le HTML auquel il essaie d'accéder.

+0

@David: Veuillez expliquer. – RKh

+0

'getElementById (" CompanyName ")' est appelé avant que l'élément par l'id 'CompanyName' soit créé. – Amarghosh

0

Vous n'avez pas défini d'ID pour CompanyType, mais seulement un nom.

1

Outre la dit par d'autres au sujet correct ID il est préférable d'accès sélectionner les valeurs comme suit:

var select = document.getElementById("CompanyType"); 

if (select[select.selectedIndex].value.substr(0,6) == "Select") { 
    // something here 
} 
0

Tout est simple - vous essayer d'obtenir l'élément par id « CompanyType », mais votre élément select a ID vide, ajoutez id = "CompanyType" dans votre élément de sélection