Bonjour,
Etant nouveau en javascript et ne sachant pas quoi chercher exactement, j'espère que vous pourrez m'aider parce que je n'ai pas réussi à trouver ce qui pourrait m'aider jusqu'à maintenant :/ .
Voilà le problème que je rencontre actuellement :
J'ai crée un projet sous Ruby on Rails et utilise javascript pour créer/détruire des champs à la volée. Cependant, je n'arrive pas à effectuer de calculs sur les champs. Je pense que c'est surement parce que je n'arrive pas à faire passer les attributs dans la fonction.
Voici le code de mon HTML.erb :
et mon applications :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <div class="fields"> <p> <%= f.label :description, "Decription" %> <%= f.text_field :description %> </br> <%= f.label :TVA,"TVA" %> <%= f.text_field :TVA %> </br> Prix : <input type="text" size="25" name="Prix" id="prix" onselect="calcul(this)"> </br> Quantite : <input type="text" size="25" name="Quantite" id="quantite" onselect="calcul(this)"> </br> Montant HT: <input type="text" size="25" name="Montant HT" id="montant" onselect="calcul(this)"> </br> <%= f.label :type,"Type" %> <%= f.text_field :type %> </br> <%= f.label :ref_prod_serv, "Reference produit" %> <%= f.text_field :ref_prod_serv%> </br> <%= link_to_remove_fields "remove", f %><br /> </p> </div>
Il n'y a pas d'erreurs lors de l'exécution mais il ne se passe rien ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function remove_fields(link) { $(link).previous("input[type=hidden]").value = "1"; $(link).up(".fields").hide(); } function add_fields(link, association, content) { var new_id = new Date().getTime(); var regexp = new RegExp("new_" + association, "g") $(link).up().insert({ before: content.replace(regexp, new_id) }); function calcul(f) { var qte = f.getElementById('quantite').getValue() ; var prix = f.getElementById('prix').getValue() ; if(qte=='') qte = 0; if(prix == '') prix = 0; f.getElementById('montant').setValue(qte * prix) ; } }
J'ai bien essayé avec un document.getElementBy... mais rien :/ d'où les fantaisies du code avec le this ...
Donc voilà si quelqu'un pouvait m'aider ça serait sympa![]()
Partager