|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Arthur SalomonDéveloppeur du dimanche Inscription : juillet 2009 Messages : 592 ![]() |
Bonjour,
J'ai un tableau html qui contient des enregistrements dont voici la ligne à tester : <td><input type='text' name='qte' id='qte' value='' /></td> Pour chaque input 'qte' générés en fonctions du nombre d'enregistrement retourné par une requête, je dois tester la valeur saisie. Pour ce faire j'utilise un événement qui lance une requête Ajax et teste la valeur renvoyée. L'événement teste bien le 1er input mais pas les autres quand l'événement se déclenche. Je n'ai pas trouvé comment dire à Jquery : tu testes n'importe quel input 'qte' chaque fois que l' événement se déclenche. var qt = $("input[name='qte']").val(); La ligne qui pose problème. Jquery : Code :
Code :
|
||||
|
|
00
|
|
|
#2 | ||
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 399 ![]() |
Bonjour,
Une règle de base veut que l'attribut id soit unique à chaque balise. Un id commun à plusieurs balises ne peut que générer des erreurs. Dans ton cas, un code du genre pourrait parfaitement fonctionner (pas testé!): Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre confirmé
![]() Arthur SalomonDéveloppeur du dimanche Inscription : juillet 2009 Messages : 592 ![]() |
Merci pour ta réponse.
Ton code ne génère pas d'erreur et fonctionne sur toutes les lignes du tableau, mais il tourne en boucle sur l'alerte "alert("La quantité saisie est supérieure à la quantité disponible !");" dès que la quantité > 0 (normale), de plus l'image n'apparait pas. Pourquoi mets-tu 2 parent() ici : Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 399 ![]() |
Pour ce qui est de tourner en boucle sur l'alerte, essais en virant l'event blur que j'avais ajouté, certains browsers refocus l'elem à l'origne de l'appel de la boite de dialogue lors de la fermeture de celle-ci, à l'ouverture de la fenêtre, le blur de l'input s'enclenchant (perte focus), et ainsi de suite... {si j'ai bien compris ton problème!}
Remplaces donc: .bind('blur mouseout', ===>>>> .bind('mouseout', {ce que tu avais mis au départ!!! Mais tester le valeur d'un input sur un évènement mouseout n'est pas très fréquent! En général, on utilise l'évènement keyup (ou mieux textchange, event customisé que tu pourras trouver sur le net). .parent().parent() ===>>> pour retomber sur la balise <tr> depuis l'input. Le plus simple serait ici de donner un id à <tr> pour redescendre directement à partir de celui-ci. Pour le problème d'image, il faudrait que tu montres ton code pour que je puisse éventuellement cibler le problème. Mais en fait, je ne comprend pas vraiment ton code. Tu exécute une requête ajax pour comparer la quantité souhaitée par rapport au stock dispo, mais ton tableau semble déjà contenir le stock dispo. Pourquoi ne pas simplement comparer la valeur stock du tableau avec la quantité saisie? Cela éviterait des requêtes inutiles, l'évènement mouseout se produisant très souvent, et sûrement souvent pour rien. EDIT: j'ai oublié en fait de faire les cast en utilisant parseInt(). Ton problème de boucle vient sûrement de là. Je vais tester sur Fiddle. |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 399 ![]() |
http://jsfiddle.net/8Bxa7/8/
J'ai testé en virant la requête ajax, cela te permettra de te faire une idée! EDIT: cette fois le lien correct! |
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() Arthur SalomonDéveloppeur du dimanche Inscription : juillet 2009 Messages : 592 ![]() |
Citation:
Tu vas me trouver chi*** Sympa le site Fiddle pour tester, je ne connaissais pas. |
|
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : décembre 2008 Messages : 399 ![]() |
Oui bien sûr, tu peux dans la fonction callback de l'ajax mettre le code que tu veux.
Ce qui bloqué dans ton code venait du fait que tu utilisé comme selector l'id qte (#) et non l'attribut name. {En fait, on utilise de préférence les classes comme selector!} Je me répète mais l'attribut id doit être unique à chaque élément. Et lorsque l'on peut s'en passer, on évite de le déclarer. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com