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 :

Exécution d'une fonction, fonctionnant sous Chrome et Firefox, et pas sous Safari


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable logistique
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable logistique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Exécution d'une fonction, fonctionnant sous Chrome et Firefox, et pas sous Safari
    Bonjour à tous,

    J'avais 2 p'tites fonctions simples qui fonctionnaient bien quand elles étaient exécutées via 2 boutons différents:

    Fonction 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function search() {
    	document.f.hact.value = "search";
    	if(document.f.form_date.value != 0) {
    		document.f.date.value=document.f.form_date.value;
    		document.f.planning.value=null;
    	}
    	else {
    		alert('Veuillez entrer une date!!'); return;
    	}
    	document.f.action = page_name + "_list.php";
    	document.f.submit();
    }
    Fonction 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function view(planning) {
    	document.f.hact.value = "";
    	document.f.planning.value=planning;
    	document.f.action = page_name + "_list.php";
    	document.f.submit();
    }
    Le code HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td><a href="javascript:search(' ');" class="button">Choisir cette date</a></td>
    .....
    <td><a href="javascript:view('all');" class="button">Voir</a></td>

    J'ai voulu regrouper les 2 fonctions de façon à n'avoir qu'une seule action à exécuter:
    (bricolé de manière empirique, sans vraiment comprendre ce que je faisais)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function viewall(planning) {
    	document.f.hact.value = "search";
    	if(document.f.form_date.value != 0) {
    		document.f.date.value=document.f.form_date.value;
    		document.f.planning.value=null;
    	}
    	else {
    		alert('Veuillez entrer une date!!'); return;
    	}
    	document.f.action = page_name + "_list.php";
    	document.f.submit();
     
    	document.f.hact.value = "";
    	document.f.planning.value=planning;
    	document.f.action = page_name + "_list.php";
    	document.f.submit();
    }
    Et nouveau HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="javascript:viewall('planning');" class="button">Voir</a></td>
    J'étais très fier d'obtenir un résultat positif (oui, suis néophyte-)), avant qu'un triste sire () ne vienne se plaindre que mon nouveau bouton ne fonctionne pas sous SAFARI, alors qu'il fonctionne sous FIREFOX et CHROME.... Arghhhhh!!

    J'ai essayé d'exécuter les 2 fonctions dans le html ( <td><a href="javascript:search(' ');view('all');" class="button">Voir</a></td> ), sans meilleur résultat.

    Une "variable" mal déclarée, un ";" au mauvais endroit, un souci de "submit" ?? Google ne m'aura pas beaucoup aidé, il me manque JUSTE quelques mois d'école du Javascript

    Une bonne âme pour me faire honte ?
    Bien Cordialement

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    du mal à bien comprendre, comme tu soumets 2 fois ton formulaire dans la même fonction, il y en a un qui va passer à la trappe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //-- du code
    document.f.submit();   // une 1st soumission
     
    document.f.hact.value = "";
    document.f.planning.value=planning;
    document.f.action = page_name + "_list.php";
    document.f.submit();   // une 2nd soumission
    regarde peut être du coté de l'utilisation d'Ajax.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Responsable logistique
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable logistique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,
    Tout ce qu'il me fallait... Le p'tit truc...
    Merci de votre bienveillance, et de votre réactivité.

    Sous dessous ma nouvelle fonction, qui fonctionne partout. Ouf!
    Ce qui continue de m'intriguer tout de même, c'est que le "salmigondis" initial fonctionnait tout de même sous Chrome et Firefox.... Il y aurait donc une sorte de "tolérance aux nuls" chez ces 2 navigateurs, qui n'existe pas sous Safari ?

    Bien Cordialement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function test(planning) {
    	document.f.hact.value = "search";
    	if(document.f.form_date.value != 0) {
    		document.f.date.value=document.f.form_date.value;
    		document.f.planning.value=null;
    		document.f.hact.value = "";
    		document.f.planning.value=planning;
    		document.f.action = page_name + "_list.php";
    		document.f.submit();
    	}
    	else {
    		alert('Veuillez entrer une date!!'); return;
    	}
    		document.f.action = page_name + "_list.php";
    }

Discussions similaires

  1. Fonction JS qui ne fonctionne pas sous Chrome
    Par hellsings dans le forum jQuery
    Réponses: 8
    Dernier message: 24/03/2012, 11h47
  2. Fonction de redirection ne fonctionne pas sous Chrome
    Par Azuken dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 22/02/2012, 11h13
  3. Code fonctionnant sous IE et Firefox mais pas sous Chrome
    Par Hanoni dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/03/2010, 16h43
  4. opacity marche sous IE7 et firefox, mais pas sous IE6
    Par maxfive7 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/08/2007, 15h03
  5. Réponses: 1
    Dernier message: 13/12/2006, 14h18

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