Bonjour,
J'ai une fonction qui affiche un fil d'actualités sur mon site.
Avec en dessous de chaque actu, un formulaire pour les commentaires validé en ajax.
Le formulaire est validé avec la touche ENTER, avec la fonction "keyup" qui s'applique sur l'input du formulaire.
Tous les input ont la même class (.text_coms), donc au moment du submit avec ENTER, ça ne fonctionne que sur la dernière actu.
Je précise que la div parent qui contient toute l'actu, à pour class "statutPost"
Voici le code jQuery :
Voici le formulaire :
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 $('.text_coms').keyup(function(e){ var parent = $(this).parents('.statutPost'); var coms_text = encodeURIComponent($('.statutCom',parent).find('input[name=coms_text]').val()); var user_id = $('.statutCom',parent).find('input[name=user_id]').val(); var statut_id = $('.statutCom',parent).find('input[name=statut_id]').val(); var dataString = "user_id="+user_id+"&statut_id="+statut_id+"&coms_text="+coms_text; if(e.keyCode == 13){ $.ajax({ type: 'POST', url: '../users/ajax/comment/create.php', data: dataString, success: function(data){ $('input[name=coms_text]').attr('value',''); $('.newsCom',parent).append(data).hide().fadeIn('fast'); } }); } return false; });
Code html : 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 <form method="post" action="#" class="statutCom" onsubmit="return false;"> <div class="postContainer"> <div class="newsCom"></div> <div class="comsComposer showCom"> <div class="clearfix"> <div class="avatarCom"> <img src="users/upload/avatars/<?php echo verifAvatar(); ?>" height="34" width="34" alt="" /> </div> <div class="inputCom"> <input type="hidden" name="user_id" value="<?php echo info($id,'id'); ?>" /> <input type="hidden" name="statut_id" value="<?php echo infoStatut('statut_id') ?>" /> <input type="text" class="text_coms" name="coms_text" placeholder="Écrire un commentaire" value="" /> </div> </div> </div> </div> </form>
Merci d'avance
Partager