Detection des modifications apportées à un formulaire
6 réponses
\(¯`·..Yttrium ...·´¯\)
Bjr,
Dans une application trés spécifique, j'ai besoin de detecter si un
utilisateur a saisi des informations dans un formlulaire, pour lui
demander s'il souhaite ou non valider ces modifications avant de
changer de page.
Avec les scripts suivants, je parviens à detecter sans probleme si
l'utilisateur à saisi des infos, en ajoutant :
-----------------------------------------------------------------------------------------
<head>
<script language="javascript">
clicked = 'non';
function isModified()
{
if(clicked == 'oui')
alert('Modif sur cette page');
else
alert('Pas de modif sur cette page');
}
function modif()
{
clicked = 'oui';
return clicked
}
</script>
</head>
<body onKeyPress="modif()">
Lorsque l'utilisateur clique sur le lien, la fonction ismodified est
appellée et vérifie si une touche a été enfoncée.
Mon probleme :
J'ai besoin de savoir également si l'utilisateur à selectionné un
eligne dans une liste déroulante (ma page en contient 7).
Je ne parviens pas à trouver quel événement "catcher" pour détecter
cela..
Je précise que je suis conscient des limites de ce procédé, et que ce
n'est pas le seul controle appliqué, il ne se rajoute au reste des
controles qu'à titre indicatif.
D'avance Merci pour vos idées.
Salutations.
--
(¯`·..Yttrium ...·´¯)
Pour me répondre en privé: Passez un coup de balai
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thibault TAILLANDIER
Bjr,
Mon probleme : J'ai besoin de savoir également si l'utilisateur à selectionné un eligne dans une liste déroulante (ma page en contient 7). Je ne parviens pas à trouver quel événement "catcher" pour détecter cela..
avec une fonction : function isModifiedSelect(selected) { if (selected) { alert("Modif sur cette page: choix de l'option"+selected); } }
Je précise que je suis conscient des limites de ce procédé, et que ce n'est pas le seul controle appliqué, il ne se rajoute au reste des controles qu'à titre indicatif.
D'avance Merci pour vos idées. Salutations.
Bye
-- Thibault
Bjr,
Mon probleme :
J'ai besoin de savoir également si l'utilisateur à selectionné un eligne
dans une liste déroulante (ma page en contient 7).
Je ne parviens pas à trouver quel événement "catcher" pour détecter cela..
avec une fonction :
function isModifiedSelect(selected) {
if (selected) { alert("Modif sur cette page: choix de
l'option"+selected); }
}
Je précise que je suis conscient des limites de ce procédé, et que ce
n'est pas le seul controle appliqué, il ne se rajoute au reste des
controles qu'à titre indicatif.
Mon probleme : J'ai besoin de savoir également si l'utilisateur à selectionné un eligne dans une liste déroulante (ma page en contient 7). Je ne parviens pas à trouver quel événement "catcher" pour détecter cela..
avec une fonction : function isModifiedSelect(selected) { if (selected) { alert("Modif sur cette page: choix de l'option"+selected); } }
Je précise que je suis conscient des limites de ce procédé, et que ce n'est pas le seul controle appliqué, il ne se rajoute au reste des controles qu'à titre indicatif.
D'avance Merci pour vos idées. Salutations.
Bye
-- Thibault
\(¯`·..Yttrium ...·´¯\)
Bjr,
Mon probleme : J'ai besoin de savoir également si l'utilisateur à selectionné un eligne dans une liste déroulante (ma page en contient 7). Je ne parviens pas à trouver quel événement "catcher" pour détecter cela..
avec une fonction : function isModifiedSelect(selected) { if (selected) { alert("Modif sur cette page: choix de l'option"+selected); } }
Je précise que je suis conscient des limites de ce procédé, et que ce n'est pas le seul controle appliqué, il ne se rajoute au reste des controles qu'à titre indicatif.
D'avance Merci pour vos idées. Salutations.
Bye
Merci, j'avais bien envisagé cette solution, mais c'était pour éviter de refaire toutes les pages de mon formulaire pour y rajouter le Onchange Faignantise.... :-( Merci quand meme
-- (¯`·..Yttrium ...·´¯) Pour me répondre en privé: Passez un coup de balai
Bjr,
Mon probleme :
J'ai besoin de savoir également si l'utilisateur à selectionné un eligne
dans une liste déroulante (ma page en contient 7).
Je ne parviens pas à trouver quel événement "catcher" pour détecter cela..
avec une fonction :
function isModifiedSelect(selected) {
if (selected) { alert("Modif sur cette page: choix de l'option"+selected);
}
}
Je précise que je suis conscient des limites de ce procédé, et que ce n'est
pas le seul controle appliqué, il ne se rajoute au reste des controles qu'à
titre indicatif.
D'avance Merci pour vos idées.
Salutations.
Bye
Merci, j'avais bien envisagé cette solution, mais c'était pour éviter
de refaire toutes les pages de mon formulaire pour y rajouter le
Onchange
Faignantise.... :-(
Merci quand meme
--
(¯`·..Yttrium ...·´¯)
Pour me répondre en privé: Passez un coup de balai
Mon probleme : J'ai besoin de savoir également si l'utilisateur à selectionné un eligne dans une liste déroulante (ma page en contient 7). Je ne parviens pas à trouver quel événement "catcher" pour détecter cela..
avec une fonction : function isModifiedSelect(selected) { if (selected) { alert("Modif sur cette page: choix de l'option"+selected); } }
Je précise que je suis conscient des limites de ce procédé, et que ce n'est pas le seul controle appliqué, il ne se rajoute au reste des controles qu'à titre indicatif.
D'avance Merci pour vos idées. Salutations.
Bye
Merci, j'avais bien envisagé cette solution, mais c'était pour éviter de refaire toutes les pages de mon formulaire pour y rajouter le Onchange Faignantise.... :-( Merci quand meme
-- (¯`·..Yttrium ...·´¯) Pour me répondre en privé: Passez un coup de balai
ASM
Avec les scripts suivants, je parviens à detecter sans probleme si l'utilisateur à saisi des infos, en ajoutant :
----------------------------------------------------------------------------------------- <head> <script language="javascript"> clicked = 'non'; function isModified() { if(clicked == 'oui') alert('Modif sur cette page');
else alert('Pas de modif sur cette page'); } function modif() { clicked = 'oui'; return clicked } </script> </head> <body onKeyPress="modif()">
Lorsque l'utilisateur clique sur le lien, la fonction ismodified est appellée et vérifie si une touche a été enfoncée.
Pas certain que onkeypress fonctionne bien sur mon NC4.5 (pas sur 'body' semblerait-ce)
Mon probleme : J'ai besoin de savoir également si l'utilisateur à selectionné un eligne dans une liste déroulante (ma page en contient 7). Je ne parviens pas à trouver quel événement "catcher" pour détecter
à mon idée ... à part tenter de catcher tous les selects de tous les forms point de salut
je te propose (qui ne fonctionne que si un champ au moins est modifié) :
clicked = 'non'; selections = 'n';
function isModified() { if(clicked == 'oui') alert('Modif sur cette page'+modif()); else alert('Pas de modif sur cette page'); }
function modif(){ selections='n'; var F = document.forms; for(var i=0;i<F.length;i++) { var E = F[i].elements; for(var j=0;j<E.length;j++) { if(E[j].tagName.toLowerCase()=='select') { selections += 'n'+E[j].name+' : '; if(E[j].options.selectedIndex>0) selections += E[j].options[E[j].options.selectedIndex].text+'n'; else selections += 'pas choisi'; } } } clicked='oui'; return selections }
Ce qui ne résoudra pas les radios ni les checkboxes Adapter en conséquence ?
Mieux vaudrait faire une boucle sur tous les éléments de tous les forms avec réaction en rapport avec le type d'élément rencontré La boucle n'étant lancée que sur l'appel par le lien
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
Avec les scripts suivants, je parviens à detecter sans probleme si
l'utilisateur à saisi des infos, en ajoutant :
-----------------------------------------------------------------------------------------
<head>
<script language="javascript">
clicked = 'non';
function isModified()
{
if(clicked == 'oui')
alert('Modif sur cette page');
else
alert('Pas de modif sur cette page');
}
function modif()
{
clicked = 'oui';
return clicked
}
</script>
</head>
<body onKeyPress="modif()">
Lorsque l'utilisateur clique sur le lien, la fonction ismodified est
appellée et vérifie si une touche a été enfoncée.
Pas certain que onkeypress fonctionne bien sur mon NC4.5
(pas sur 'body' semblerait-ce)
Mon probleme :
J'ai besoin de savoir également si l'utilisateur à selectionné un
eligne dans une liste déroulante (ma page en contient 7).
Je ne parviens pas à trouver quel événement "catcher" pour détecter
à mon idée ...
à part tenter de catcher tous les selects de tous les forms
point de salut
je te propose (qui ne fonctionne que si un champ au moins est modifié) :
clicked = 'non';
selections = 'n';
function isModified() {
if(clicked == 'oui') alert('Modif sur cette page'+modif());
else alert('Pas de modif sur cette page');
}
function modif(){
selections='n';
var F = document.forms;
for(var i=0;i<F.length;i++) {
var E = F[i].elements;
for(var j=0;j<E.length;j++) {
if(E[j].tagName.toLowerCase()=='select') {
selections += 'n'+E[j].name+' : ';
if(E[j].options.selectedIndex>0)
selections += E[j].options[E[j].options.selectedIndex].text+'n';
else
selections += 'pas choisi';
}
}
}
clicked='oui';
return selections
}
Ce qui ne résoudra pas les radios ni les checkboxes
Adapter en conséquence ?
Mieux vaudrait faire une boucle sur tous les éléments de tous les forms
avec réaction en rapport avec le type d'élément rencontré
La boucle n'étant lancée que sur l'appel par le lien
--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
Lorsque l'utilisateur clique sur le lien, la fonction ismodified est appellée et vérifie si une touche a été enfoncée.
Pas certain que onkeypress fonctionne bien sur mon NC4.5 (pas sur 'body' semblerait-ce)
Mon probleme : J'ai besoin de savoir également si l'utilisateur à selectionné un eligne dans une liste déroulante (ma page en contient 7). Je ne parviens pas à trouver quel événement "catcher" pour détecter
à mon idée ... à part tenter de catcher tous les selects de tous les forms point de salut
je te propose (qui ne fonctionne que si un champ au moins est modifié) :
clicked = 'non'; selections = 'n';
function isModified() { if(clicked == 'oui') alert('Modif sur cette page'+modif()); else alert('Pas de modif sur cette page'); }
function modif(){ selections='n'; var F = document.forms; for(var i=0;i<F.length;i++) { var E = F[i].elements; for(var j=0;j<E.length;j++) { if(E[j].tagName.toLowerCase()=='select') { selections += 'n'+E[j].name+' : '; if(E[j].options.selectedIndex>0) selections += E[j].options[E[j].options.selectedIndex].text+'n'; else selections += 'pas choisi'; } } } clicked='oui'; return selections }
Ce qui ne résoudra pas les radios ni les checkboxes Adapter en conséquence ?
Mieux vaudrait faire une boucle sur tous les éléments de tous les forms avec réaction en rapport avec le type d'élément rencontré La boucle n'étant lancée que sur l'appel par le lien
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
\(¯`·..Yttrium ...·´¯\)
ASM a exprimé avec précision :
function modif(){ selections='n'; var F = document.forms; for(var i=0;i<F.length;i++) { var E = F[i].elements; for(var j=0;j<E.length;j++) { if(E[j].tagName.toLowerCase()=='select') { selections += 'n'+E[j].name+' : '; if(E[j].options.selectedIndex>0) selections += E[j].options[E[j].options.selectedIndex].text+'n'; else selections += 'pas choisi'; } } } clicked='oui'; return selections }
Bjr, Avec ce système je peux detecter les champs qui ne sont plus à leur valeur d'origine, à supposer que leur valeur d'origine soit la permiere ligne. Or : Dans mon cas, l'utilisateur arrive sur une page, le formulaire est déjà positionné en fonction de valeurs extraites d'une DB. Je n'ai pas besoin de savoir si les champs (select, text, texarea et chekbox) sont vierges ou pas, j'ai besoin de savoir s'ils ont été modifiés depusi le chargement de la page.
En fait, il suffit que j'appelle la fonction que j'ai faite depuis tous les champs de mon formulaire.. mais j'aurais aimé etre épargné.
Ma question devient donc :
Est il possible de rajouter de manière automatique 'en faisant une fonction incluant une boucle par exemple), une action déclenchée par l'evenement onchange ?)
Je voudrais que tous les champs de mon form soient complétés avec un : onchange="toto()" ..
D'avance Merci.
-- (¯`·..Yttrium ...·´¯) Pour me répondre en privé: Passez un coup de balai
ASM a exprimé avec précision :
function modif(){
selections='n';
var F = document.forms;
for(var i=0;i<F.length;i++) {
var E = F[i].elements;
for(var j=0;j<E.length;j++) {
if(E[j].tagName.toLowerCase()=='select') {
selections += 'n'+E[j].name+' : ';
if(E[j].options.selectedIndex>0)
selections += E[j].options[E[j].options.selectedIndex].text+'n';
else
selections += 'pas choisi';
}
}
}
clicked='oui';
return selections
}
Bjr,
Avec ce système je peux detecter les champs qui ne sont plus à leur
valeur d'origine, à supposer que leur valeur d'origine soit la
permiere ligne.
Or :
Dans mon cas, l'utilisateur arrive sur une page, le formulaire est déjà
positionné en fonction de valeurs extraites d'une DB.
Je n'ai pas besoin de savoir si les champs (select, text, texarea et
chekbox) sont vierges ou pas, j'ai besoin de savoir s'ils ont été
modifiés depusi le chargement de la page.
En fait, il suffit que j'appelle la fonction que j'ai faite depuis tous
les champs de mon formulaire..
mais j'aurais aimé etre épargné.
Ma question devient donc :
Est il possible de rajouter de manière automatique 'en faisant une
fonction incluant une boucle par exemple), une action déclenchée par
l'evenement onchange ?)
function modif(){ selections='n'; var F = document.forms; for(var i=0;i<F.length;i++) { var E = F[i].elements; for(var j=0;j<E.length;j++) { if(E[j].tagName.toLowerCase()=='select') { selections += 'n'+E[j].name+' : '; if(E[j].options.selectedIndex>0) selections += E[j].options[E[j].options.selectedIndex].text+'n'; else selections += 'pas choisi'; } } } clicked='oui'; return selections }
Bjr, Avec ce système je peux detecter les champs qui ne sont plus à leur valeur d'origine, à supposer que leur valeur d'origine soit la permiere ligne. Or : Dans mon cas, l'utilisateur arrive sur une page, le formulaire est déjà positionné en fonction de valeurs extraites d'une DB. Je n'ai pas besoin de savoir si les champs (select, text, texarea et chekbox) sont vierges ou pas, j'ai besoin de savoir s'ils ont été modifiés depusi le chargement de la page.
En fait, il suffit que j'appelle la fonction que j'ai faite depuis tous les champs de mon formulaire.. mais j'aurais aimé etre épargné.
Ma question devient donc :
Est il possible de rajouter de manière automatique 'en faisant une fonction incluant une boucle par exemple), une action déclenchée par l'evenement onchange ?)
Je voudrais que tous les champs de mon form soient complétés avec un : onchange="toto()" ..
D'avance Merci.
-- (¯`·..Yttrium ...·´¯) Pour me répondre en privé: Passez un coup de balai
Thibault TAILLANDIER
ASM a exprimé avec précision :
Ma question devient donc :
Est il possible de rajouter de manière automatique 'en faisant une fonction incluant une boucle par exemple), une action déclenchée par l'evenement onchange ?)
Je voudrais que tous les champs de mon form soient complétés avec un : onchange="toto()" ..
D'avance Merci.
Salut,
function toto() { alert("plom plom: "+this); } var monform = document.getElementById('nom_form'); for (int i=0; i<monform.elements.length; i++) { monform.elements[i].onchange = toto; }
Ca devrait faire l'affaire. Bye -- Thibault
ASM a exprimé avec précision :
Ma question devient donc :
Est il possible de rajouter de manière automatique 'en faisant une
fonction incluant une boucle par exemple), une action déclenchée par
l'evenement onchange ?)
Est il possible de rajouter de manière automatique 'en faisant une fonction incluant une boucle par exemple), une action déclenchée par l'evenement onchange ?)