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 :

Via select : changer action d'un form puis submit + smartphone


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Via select : changer action d'un form puis submit + smartphone
    Bonjour,
    J'ai un formulaire contenant juste une liste déroulante (<select>).
    A la sélection dans la liste, je souhaite :
    • modifier l'attribut action du formulaire (changer l'URL de la page de destination)
    • soumettre le formulaire


    Mon script fonctionne sur PC, mais PAS sur mon smartphone (Samsung Galaxy Ace)
    A priori, sur smartphone, c'est le mode de sélection dans une liste déroulante qui semble en cause (ouverture en popup + bouton "OK").

    Une page où voir le soussaï : ICI
    Sélection dans la liste déroulante : OK sur PC, KO sur smartphone.

    Un test (simplifié pour l'occasion): (http://codepen.io/jreaux62/pen/zhInr)
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
    <script>
    function submitArtDiscsSelect(artURL){ // URL Rewriting
    		$('#formArtDiscsSelect').attr('action', '#' + artURL).submit();
    		$('#test').html(artURL);
    }
    </script>
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form method="post" id="formArtDiscsSelect" action="#" onsubmit="return:false;">
    	<select id="idartDiscArticleId" name="id" style="width:auto;" onchange="submitArtDiscsSelect(this.value);">
    		<option value="44-2013-rayonnances">2013 - Rayonnances</option>
    		<option value="43-2012-air-amadoue">2012 - Air amadoué</option>
    		<option value="41-2009-arpaligato">2009 - Arpaligato</option>
    		<option value="39-2008-danza-harpe">2008 - Danza Harpe</option>
    		<option value="38-2005-nations-d-etoiles">2005 - Nations d'Étoiles</option>
    		<option value="36-2004-harpe-en-sol">2004 - Harpe en Sol</option>
    	</select> 
    </form>
    <div id="test"></div>
    Ma question :
    Comment faire pour que ça fonctionne sur smartphone ?

    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Donc, sur smartphone :
    • l'attribut action du formulaire est bien modifié
    • MAIS le formulaire N'EST PAS soumis/envoyé

    Quelqu'un s'y connait en <select> sur smartphone ?

  3. #3
    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
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return:false;"


    En JavaScript, : correspond à un label et en fonction du navigateur, il se peut que l'instruction soit mal interprétée.
    Bref, ce : est probablement la source du souci et la syntaxe correcte pour un return est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    return [valeur ou expression]
    // dans ton cas :
    return false
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Invité
    Invité(e)
    Par défaut
    Yadah ! j'avais pas vu !
    Je teste ça...

    [EDIT] Finalement, le doigt était bien posé sur le problème, mais le problème était un peu différent.
    MA logique n'était pas bonne : il fallait juste supprimer return false;
    Et ça fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<form method="post" id="formArtDiscsSelect" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    ...
    		<select id="idartDiscArticleId" name="id" style="width:auto;" onchange="submitArtDiscsSelect();">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script>
    function submitArtDiscsSelect(){
    		$('#formArtDiscsSelect').attr('action', '<?php echo SITE_URL_HTTP.REP_PAGES; ?>article/' + $('#idartDiscArticleId').val()).submit(); // URL Rewriting
    }
    </script>
    Merci Bovino pour ton coup d'oeil aiguisé
    Dernière modification par Invité ; 04/09/2013 à 14h15.

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

Discussions similaires

  1. Changer l'action d'un form en C#
    Par Jimmy_S dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/02/2008, 16h26
  2. changer l'action d'un form selon valeur d'un bouton radio
    Par Nemesys dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 09/06/2007, 17h48
  3. inserer une table via select
    Par nabou dans le forum Oracle
    Réponses: 1
    Dernier message: 12/07/2006, 13h06
  4. [VB6]Lancer une form puis 30 sec après la fermer et ........
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/03/2006, 18h17
  5. Réponses: 2
    Dernier message: 07/02/2006, 20h57

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