Submit de plusieurs formulaires avec la même class

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Submit de plusieurs formulaires avec la même class

Submit de plusieurs formulaires avec la même class

par nico44530 » 09 avr. 2014, 18:34

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 :

[javascript]
$('.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;
});
[/javascript]
Voici le formulaire :
<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