2010-12-03 5 views
0

Je me suis rendu compte qu'il y avait une façon beaucoup plus simple de voir cela.Ajouter tous les champs avec Javascript de manière simple

Comment ajouter tous les champs dans un formulaire ou un autre corps respectable. Il y a une série de champs de texte qui contiennent des informations chargées dynamiquement, mais ne vous inquiétez pas pour plus d'informations.

Tout simplement tous les champs ont un ID unique mais avec la même structure de départ dans ce cas 'product_total_price_PRI_....' (où le ... est un nombre unique). Donc, ma compréhension de javascript est toujours dans le domaine de l'ingénierie inverse plutôt que de construire des tableaux et des objets, alors comment puis-je additionner tous ces champs avec un événement onClick par exemple. Quelque chose comme onclick = "total();"

Merci beaucoup,

Répondre

0

Quelque chose comme ce qui suit:

0
function summaFormae(form) { 
    var sum = 0; 
    for (var i = 0; i < form.elements.length; i++) 
    sum += parseFloat(form.elements[i].value); 
    return sum; 
} 
1

quelque chose comme ça pourrait fonctionner ...

ne sais pas si vous entendez par "ajouter" si vous Ré attendu que tout soit numérique et les résultats ajoutés ou simplement saisir tous les résultats et les ajouter à un tableau ... mais cela devrait être facilement modifié pour ajouter des données numériques à la place.

HTML

<form> 
    <input id="product_total_price_PRI_asdfsdf" /><br /><br /> 
    <input id="product_total_price_PRI_sdfg" /><br /><br /> 
    <input id="product_total_price_PRI_fgh" /><br /><br /> 
    <input id="product_total_price_PRI_4356" /><br /><br /> 
    <input id="product_total_price_PRI_dfghfh" /><br /><br /> 
    <input type="button" value="submit" onClick="getFields()" /> 
</form> 

JavaScript (mis à jour pour obtenir juste somme des entrées) Example of update

function getFields() { 
    var inputs = document.getElementsByTagName('input'), 
     result = 0; 
    for(var i = 0; i < inputs.length; i++) { 
     if(inputs[i].id.indexOf('product_total_price_PRI_') == 0) { 
      var num = parseFloat(inputs[i].value); 
      //if it's a valid number add it 
      if(!isNaN(num)) result += num; 
     } 
    } 
    alert(result); 
} 

exemple de travail JSFiddle

+0

Très bon. Le but de ceci est d'ajouter le um pour le but d'une somme. Donc je suppose que nous avons besoin d'un ParseFLoat ici quelque part. Où abouts je le mettrais. La somme ne doit ajouter que la valeur de sorte que j'ai supprimé la ligne de résultat pour obtenir + = entrées [i] .value –

+0

voici une mise à jour qui ajoute la somme des valeurs dans la zone de texte s'il s'agit d'un nombre http: //www.jsfiddle .net/subhaze/szUey/30/ – subhaze

+0

@Robin: Mise à jour de ma réponse pour répondre à vos besoins. – subhaze

Questions connexes