Probleme sur script apres changement dom
loic
-
Pitet Messages postés 2845 Statut Membre -
Pitet Messages postés 2845 Statut Membre -
Bonjour,
j'ai un tableau tout simple en html, avec lequel j'ajoute une ligne grâce a un bouton ajouter.
voici mon code html pour le tableau :
voici mon script qui ajoute une ligne :
tout ca fonctionne, mais j'ai une fonction qui agit sur l'événement blur des id qui commencent par "achat_" cette fonction fonctionne bien pour la 1ere ligne (qui est visible dès le chargement de la page) mais ne marche pas pour les lignes que j'ajoute.
voici ma fonction :
je pense qu'il faut recharger cette fonction lorsqu'on ajoute une ligne, mais j'ai essayer pas mal de chose et je n'y arrive pas.
J'espère que j'ai été assez clair. Merci par avance de votre aide.
j'ai un tableau tout simple en html, avec lequel j'ajoute une ligne grâce a un bouton ajouter.
voici mon code html pour le tableau :
<tr> <td> <input type="number" id="achat_1" /> </td></tr>
voici mon script qui ajoute une ligne :
var i=$('table tr').length;
$(".addmore").on('click',function(){
html = '<tr>';
html += '<td><input type="number" id="achat_'+i+'"/></td>';
html += '</tr>';
$('table').append(html);
i++;
});
tout ca fonctionne, mais j'ai une fonction qui agit sur l'événement blur des id qui commencent par "achat_" cette fonction fonctionne bien pour la 1ere ligne (qui est visible dès le chargement de la page) mais ne marche pas pour les lignes que j'ajoute.
voici ma fonction :
$(function() {
$('input[id^="achat_"]').blur(function() {
alert('test');
});
});
je pense qu'il faut recharger cette fonction lorsqu'on ajoute une ligne, mais j'ai essayer pas mal de chose et je n'y arrive pas.
J'espère que j'ai été assez clair. Merci par avance de votre aide.
A voir également:
- Probleme sur script apres changement dom
- Changement dns - Guide
- Script vidéo youtube - Guide
- Changement d'heure - Guide
- Changement d'écriture facebook - Guide
- Mas script - Accueil - Windows
2 réponses
Bonjour,
Dans le chargement de ta page :
Dans ta faction d'ajout de ligne
Dans le chargement de ta page :
$(function() {
init();
});
function init(){
$('input[id^="achat_"]').blur(function() {
alert('test');
});
}
Dans ta faction d'ajout de ligne
var i=$('table tr').length;
$(".addmore").on('click',function(){
html = '<tr>';
html += '<td><input type="number" id="achat_'+i+'"/></td>';
html += '</tr>';
$('table').append(html);
i++;
init();
});
Salut,
Une autre solution possible est d'utiliser la fonction on :
https://api.jquery.com/on/
Bonne journée,
Une autre solution possible est d'utiliser la fonction on :
$(function() {
$('table').on('blur', 'input[id^="achat_"]', function() {
alert('test');
});
});
https://api.jquery.com/on/
Bonne journée,