J'ai un tableau dans lequel se trouve des contrôles Input Text. A chaque ligne, les contrôles se répètent en se numérotant.
Il faut que j'intercepte l'événement Change pour inscrire les valeurs dans le DOM sinon, du côté client (ASP/VB.net), les valeurs ne sont pas considéré comme changées.
Problème, cela n'a aucun effet, les contrôles sont pourtant bien trouvés si je debug le déroulement de la boucle:
Du côté client, les contrôles sont nommés de la sorte (exemple pour la ligne 1):
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 function TriggerChangeTextBox() { for (var i = 1; i < 12; i++) { var txtMS = $(':input[name$="txtMS' + i + '"]'); var txtPcentMS = $(':input[name$="txtPcentMS' + i + '"]'); var txtObs = $(':input[name$="txtObs' + i + '"]'); /* Permet de capturer l'évènement Change. */ txtMS.trigger('change'); txtPcentMS.trigger('change'); txtObs.trigger('change'); /* Inscription de la valeur du TextBox directement dans le DOM, sinon la valeur ne sera pas considéré comme changée côté serveur. */ txtMS.change(function () { txtMS.attr('value', txtMS.val()); }); txtPcentMS.change(function () { txtPcentMS.attr('value', txtPcentMS.val()); }); txtObs.change(function () { txtObs.attr('value', txtObs.val()); }); } }
Si quelqu'un voit où ça peut clocher... D'ailleurs, est-ce qu'il y a un autre moyen d'ajouter les valeurs dans le DOM ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ctl00_MainContent_txtMS1 ctl00_MainContent_txtPcentMS1 ctl00_MainContent_txtObs1
![]()
Partager