IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

onchange document.forms.submit() et les ancres


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut onchange document.forms.submit() et les ancres
    Bonjour à tous,

    J'ai un long formulaire sur mon site. En fonction des choix réalisés dans les listes déroulantes, le reste du formulaire est modifié.
    Du coup, pour les listes déroulantes, je fais un onchange pour recharger le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange=document.forms['form_pro'].submit();
    Mes données sont bien rechargées et tout fonctionne MAIS le formulaire étant très long, lorsqu'il se recharge, je réatterri au début du formulaire.
    J'aimerais qu'une fois que le formulaire est rechargé, que le curseur revienne sur le dernier champs modifié.

    Avez-vous une idée de comment procéder ?
    Je pensais aux ancres ou .focus () mais je ne sais pas comment l'intégrer au onchange ci-dessus ?

    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    il faut ajouter #ancre à la fin de l'action du formulaire pour qu"il se déplace à l'ancre

    A+JYT

  3. #3
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Merci pour votre réponse !

    C'est bien ceci que vous voulez dire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange=document.forms['form_pro#ancre'].submit();

  4. #4
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Oubliez ce que j'ai posté ci-dessus.

    Je viens de comprendre ce que vous avez mis mais le soucis c'est qu'il n'y a pas qu'une seule liste déroulante qui modifie la structure du formulaire, il y a en plusieurs et elles sont toutes à des endroits bien différents...

    Il faudrait donc agir sur l'action propre au champ modifié et pas au formulaire... mais je ne sais pas si c'est possible ?

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    onchange=function(ancre) {
     var form = document.forms['form_pro'];
     form.action = form.action +'#' + ancre;
     return form.submit();
    }
    A+JYT

  6. #6
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    J'ai mis en place votre bout de code mais celui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a name="cp_ancre"></a>
    <input type="text" name="code_postal" class="form_input" maxlength="10" value="<?php echo $save_cp; ?>" onchange="function('cp_ancre') {var form = document.forms['form_pro']; form.action = form.action +'#' + cp_ancre; return form.submit();}" />
    Il n'y a plus rien qui se passe, le formulaire n'est même pas rechargé.

    Aurais-je fais une erreur de syntaxe ?

    Merci.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par The Molo
    Aurais-je fais une erreur de syntaxe ?
    Oui.
    Tu intègres le code donné dans l'attribut onclick, du coup, au clic sur le bouton, tu vas définir la fonction, pas l'exécuter !
    Une déclaration de fonction se fait dans les balises <script>.

  8. #8
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    OUF l'erreur de débutant
    On va mettre ça sur le coup de la chaleur.

    Ça fonctionne...

    Merci à tous les deux !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/01/2009, 11h36
  2. Comment sysnchronier 2 document.form.submit
    Par marti dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/07/2006, 10h24
  3. window.document.forms[0].submit is not a function ?????
    Par michaelbob dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 04/01/2006, 16h08
  4. [form] document.monForm.submit() !?!
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2005, 01h13
  5. onChange="this.form.submit();" marche pas sous IE
    Par Death83 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/09/2005, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo