Bonjour tout le monde,
j'ai écrit deux petite fonction javascript.

Elles sont presque identiques, pourtant, quand la deuxième est activée, mon appli ralentie , je passe d'un affichage instantané a 2 secondes de "calculs"

Ce problème est visible avec I.E. mais sous FF, les fonctions sont tout simplement inopérantes.

Pour info, ce sont mes tous premiers pas en javascript

voici ces fonctions :

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
28
29
30
31
32
33
34
35
36
37
38
39
function jsChangeObjectif(id,inputName)
        {
              var prefix = id.replace (inputName, '');
 
              var valObj = document.getElementById(prefix+"txtObjectifValide");
 
              var valIndice = document.getElementById(prefix+"indice_temp");
 
              var valCA = document.getElementById(prefix+"Label1");
 
 
              var newCA = valCA.value.replace(/\s+/g,'');
              newCA = newCA.replace(/ /g, "");
 
              var newIndice = valIndice.value.replace(/\s+/g,'');
              newIndice = newIndice.replace(/ /g, "");
              newIndice=newIndice.replace(/,/,'.')
              var p=eval(newCA*newIndice/100);
              valObj.innerText=p.toFixed(0);
        }
         function jsChangeIndice(id,inputName)
        {
              var prefix = id.replace (inputName, '');
 
              var valObj = document.getElementById(prefix+"txtObjectifValide");
 
              var valIndice = document.getElementById(prefix+"indice_temp");
 
              var valCA = document.getElementById(prefix+"Label1");
 
 
              var newCA = valCA.value.replace(/\s+/g,'');
              newCA = newCA.replace(/ /g, "");
 
              var newObj = valObj.value.replace(/\s+/g,'');
              newObj = newObj.replace(/ /g, "");
 
              var p=eval(newObj/newCA*100);
              valIndice.innerText=p.toFixed(1);

et voici le dotnet qui y ont appels :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 <asp:TextBox ID="txtObjectifValide" Style="text-align: right;" runat="server" Text='<%# this.AfficheMontant(Eval("objectif_valide")) %>'
                                            ValidationGroup="update" width="60%" Enabled='<%# !bool.Parse(Eval("est_valide").ToString()) %>' onchange="jsChangeIndice(this.id, 'txtObjectifValide')" /> 
                                            <%# this.SumObjectifs(Eval("objectif_valide")) %>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
        <asp:TextBox id="indice_temp" Width="55%" Style="text-align: right;" onchange="jsChangeObjectif(this.id, 'indice_temp')"  
                            runat="server" Text='<%# this.Eval("indice_ajustement") %>' />

Merci beaucoup.