2010-12-08 28 views
0

array.length conserve la sortie des tableaux 2007?Array [] formulaire de validation

hmm .. J'ai une table qui a bien sûr 2 <tr> 1 pour en-tête et 1 pour les valeurs de la base de données

ma table a une colonne appelée code et la description où sont ids fCode[] et fDesc[] et chacun a un élément

J'ai un code où je peux cloner une ligne de table chaque fois que je clique sur ajouter. Dans chaque ligne ajoutée ajoute un autre fCode[] et fDesc[].

2 rows = 2 fCode[], fDesc[]

A ma fonction javascript Je possède ce

function validate_pr_form(e) { 

    var fCode = document.forms[e].elements["fCode[]"]; 
    var fDesc = document.forms[e].elements["fDesc[]"]; 
    for (i = 0; i < fCode.length; i++){ 
     if (fCode[i].value == "") { 
      alert("Please choose product code"); 
      fCode[i].focus(); 
      return false; 
     } 
    } 
    for (i = 0; i < fDesc.length; i++){ 
     if (fDesc[i].value == "") { 
      alert("Please choose product description"); 
      fDesc[i].focus(); 
      return false; 
     } 
    } 
    e.submit(); 

} 

Chaque fois que je charge la page et cliquez sur Envoyer le bouton, je reçois toujours 2007 tableaux, mais quand j'ajoute une autre ligne, il devient 2 lignes maintenant (2 fCode[] et 2 fDesc[]) Je reçois 2 tableaux et ces foyers dans chaque index de tableau normalement.

Mon problème est seulement avec 1 rang ...

Toute aide est très appréciée.

+0

S'il vous plaît [ne pas utiliser des signatures ou des accroches] (http : //stackoverflow.com/faq#signatures) dans vos publications. – meagar

Répondre

0

Essayez ceci:

var fCode = document.forms[e].elements["fCode[]"]; 
if (typeof fCode.length != "number") 
    fCode = [fCode]; 
var fDesc = document.forms[e].elements["fDesc[]"]; 
if (typeof fDesc.length != "number") 
    fDesc = [fDesc]; 
1

merci pour la réponse, mais je l'ai déjà résolu mon problème en obtenant le nom de l'élément comme celui-ci

fCode = document.getElementsByName("fCode[]"); 

for (var i = 0; i < fCode.length; i++){ 
     if (fCode[i].value == "") { 
      alert("Please choose 'Product Code'."); 
      fCode[i].focus(); 
      return false; 
     } 
    }