PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2025 → [WB12] Table Ajax - Gestion des évènements
[WB12] Table Ajax - Gestion des évènements
Iniciado por o.sicard, 19,jun. 2008 19:42 - 7 respuestas
Publicado el 19,junio 2008 - 19:42
Bonjour,
J'utilise une table Ajax constituée de colonnes A, B, C, ...
Je voudrais savoir quel(s) evenement(s) je peux utiliser (en code serveur ou naviguateur) pour pouvoir tester la valeur saisie dans une colonne C à l'issue de la saisie. La saisie est terminée par Enter (interceptable dans l'évènement OnKeyPres avec JSInfoEvénement("keyCode") ) ou par Tab (et là je n'arrive pas à intercepter la touche) ou tout simplement en double cliquant dans une autre colonne (et là je ne sais pas comment déterminer que l'on a changé de colonne).
Merci de vos idées et suggestions, je sèche ...
Publicado el 23,junio 2008 - 12:46
Personne ne sait ? :-(
Publicado el 23,junio 2008 - 16:56
tu ne peux pas le faire aussi facilement.
il faudrait ajouter des evenement javascript sur la page pour gerer les evenements entrer et sortie de champs et de tester les valeurs différentes.
Publicado el 23,junio 2008 - 17:43
Je ne pensais pas que ce sera facile ...
Peux tu m'en dire plus ou me donner des pistes plus précises ?
Cordialement
Publicado el 23,junio 2008 - 18:47
ok.
1)
tu vas d'abord demander à webdev de générer un id pour tous les champs de la page.
pour ça tu vas dans la description de la page, l'onglet avance et optimisation et tu décoches ne pas generer d'id inutile.

2) voici un code htm
<html>
<head>
<title>DOM Event Example</title>
<style type="text/css">
#t { border: 1px solid red }
#t1 { background-color: pink; }
</style>
<script type="text/javascript">

// Function to change the content of t2
function modifyText(evt) {
if(window.addEventListener){ // Mozilla, Netscape, Firefox
element=evt.target;
}
else
{
element=evt.srcElement;
}
alert(element.id);
}

// Function to add event listener to t
function load() {
document.addEventListener("change", modifyText, false);
}

</script>
</head>
<body onload="load();">
<table id="t">
<tr><td id="t1"><input type="text" id="id1"></input></td></tr>
</table>
</body>
</html>

ainsi tu pourras le tester en le sauvant dans une page htm.

3) en Webdev tu dois :

creer une procédure locale navigateur modifText (respecte bien les maj/min)

tu passe en JS
tu enlèves tout le code et tu colles celui-ci
function modifyText(evt) {
if(window.addEventListener){ // Mozilla, Netscape, Firefox
element=evt.target;
}
else
{
element=evt.srcElement;
}
alert(element.id);
}

Ensuite tu vas dans l'évènement au chargement de la page côté navigateur et tu passes en JS et tu colles le code suivant :
document.addEventListener("change", modifyText, false);


tiens moi aucourant
Publicado el 23,junio 2008 - 19:21
Merci beaucoup ..
Je vais regarder tout ca pas à pas pendant mes vacances :-)
Publicado el 24,junio 2008 - 09:04
Re
Je ne suis pas du tout spécialiste Javascript, mais si j'ai bien compris, le code indiqué permet de capter un évenement de type modification sur un élément.
Si cela semble adapté à mes colonnes pour lesquelles je souhaite avoir un traitement spécifique, sera t'il possible en revanche de laisser pour les autres colonnes les traitements d'évenements par défaut ? (c'est à dire que distinguer la capture d'évènements "change" selon les colonnes).
Merci
Publicado el 25,junio 2008 - 11:43
bienvenue dans le monde web, tu verras tu vas bien t'amuser.
Pour faire du javascript avec webdev, je te conseilles d'installer ietoolbar pour IE7 et firebug pour firefox se sont des outils trés utiles pour voir les noms champs créés par webdev.
Et je te conseilles aussi de décocher l'option dans la page créer des alias des champs