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 :

CTRL+S function JS (submit like)


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut CTRL+S function JS (submit like)
    Bonjour, j'ai une page modif.php dans lequel s'affiche par exemple un texte en cours d'édition. Pour terminer l'édition, nous cliquons sur le boutons save.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" id="subedit" name="save" value="save" />
    Je souhaite utiliser CTRL+S pour sauvegarder pour éviter d'appuyer sur le bouton save.

    J'ai donc écrit un script js et voici actuellement mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	var isCtrl = false;
    	document.onkeyup=function(e){ 
    		if(e.which == 17) isCtrl=false; 
    } 
    	document.onkeydown=function(e){ 
    		if(e.which == 17) isCtrl=true;
    		if(e.which == 83 && isCtrl == true) {
     
    	***quelle code écrire ici pour faire comme le bouton enregistrer?*** 
     
    return false; } 
    }

    ***quelle code écrire ici pour faire comme le bouton enregistrer?***

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    heu ben c'est pas déja fait ???
    tu soumets le form pour sauvergarder non ?

    Bien que tu aies supprimé la ligne dans le code

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Arf, bonjour, je viens d'édité le post. J'ai retiré le submit form, car cela ne marche pas. En effet lorsque je fait CTRL +S, il ne se passe rien

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    si tu mets un alert il se declenche ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // CTRL + S
    	var isCtrl = false;
    	document.onkeyup=function(e){ 
    		if(e.which == 17) isCtrl=false; 
    } 
    	document.onkeydown=function(e){ 
    		if(e.which == 17) isCtrl=true;
    		if(e.which == 83 && isCtrl == true) {
    	alert("test CTRL+S");
    return false; } 
     
    }
    lorsque je fait CTRL+S l'alert fonctionne

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    voici un code qui fonctionne sous ffx

    reste plus qu'a l"adapter pour IE

    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
    18
    19
    20
    21
    22
    23
    <script type="text/javascript">
    function init(){	
    	var isCtrl = false; 
    	document.onkeyup=function(e){
    	 if(e.which == 17){ isCtrl=false;} } 
    	document.onkeydown=function(e){ 
    		if(e.which == 17) {isCtrl=true;}
    	   if(e.which == 83 && isCtrl == true) { alert('sauvergarde')
       } 
     
       return false; 
     
     }
     }
     
    </script>
    </head>
     
    <body onload='init()'>
     
    </body>
     
    </html>

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    code valide ie et ffx
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <script type="text/javascript">
    var isCtrl = false; 
    function init(){	
    	document.onkeyup=function(e){
    		 (!e) && (e=window.event);
    		  k=(!window.event)?(e.keyCode):(e.which);
    		  isCtrl=!(k == 17)
     
    		  }
     
    	document.onkeydown=function(e){ 
    		(!e) && (e=window.event);
    		 k=(e.keyCode) ? (e.keyCode) : (e.which)
    		if(k == 17){isCtrl=true}
    		 if(k == 83 && isCtrl) {
    		// ici lancement du raccourci
    		alert('sauvergarde')
    				isCtrl=false } 
     
       return false; 
      }
     
     }
     
    </script>
     
    </head>
    <body onload='init()'>
     
    </body>
     
    </html>

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Merci pour ton aide, le premier que tu m'a donné ne marchait pas. Je vais tester le second durant la soirée, car je doute que ca marche car ma page edit.php n'est une une simple page avec seulement 1 petit form.

    Je vois ca et vous tiens au courant!

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Je me demande si c'est pas ca qui gène : <form method='post' onsubmit='return check_form(this)' id="form_article">

  10. #10
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    La détection d'un racourci clavier de type CTRL+LETTRE ne se fait pas comme ça.

    L'event retourne toujours les touches spéciables comme CTRL/ALT/MAJ qui permettent des raccourcis dans des propriétés sur event propre à chaque touche.

    The properties event.ctrlKey, event.altKey, event.shiftKey are self-explanatory. Their values are true if the corresponding keys are pressed, and false otherwise.

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    quels sont les symptomes ..???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(document.forms['form_article'].onsubmit()){
                document.forms['form_article'].submit()
    }
    duke, j'ai testé le code sous ie et ffx et il fonctionne ceci étaznt on peut en effet le simplifier
    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
    <script type="text/javascript">
    function init(){	
     
    	document.onkeydown=function(e){ 
    		(!e) && (e=window.event);
    		 k=(e.keyCode) ? (e.keyCode) : (e.which)
    		 if(k == 83 && e.ctrlKey) {
    		// ici lancement du raccourci
    		alert('sauvergarde')
    				isCtrl=false } 
     
       return false; 
      }
     
     }
     
    </script>

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Quelque chose comme cela ?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <script type="text/javascript">
    var isCtrl = false; 
    function init(){	
    	document.onkeyup=function(e){
    		 (!e) && (e=window.event);
    		  k=(!window.event)?(e.keyCode):(e.which);
    		  isCtrl=!(k == 17)
     
    		  }
     
    	document.onkeydown=function(e){ 
    		(!e) && (e=window.event);
    		 k=(e.keyCode) ? (e.keyCode) : (e.which)
    		if(k == 17){isCtrl=true}
    		 document.getElementById('foo').value=k
    		 if(k == 83 && isCtrl) {
     
    			if(document.forms['form_article'].onsubmit()){
                document.forms['form_article'].submit()
    }
    		alert('sauvegarde')
    				isCtrl=false } 
     
       return false; 
      }
     
     }
     
    </script>

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function init(){	
     
    	document.onkeydown=function(e){ 
    		(!e) && (e=window.event);
    		 if(((e.keyCode) ? (e.keyCode) : (e.which))== 83 && e.ctrlKey) {
    		// ici lancement du raccourci
    		alert('sauvergarde')
    				isCtrl=false } 
     
       return false; 
      }
     
     }

  14. #14
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Faudrait juste faire un peu de nettoyage dans ce code c'est le bordel dans les parentheses, et réduit ça donne ceci et en plus ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function init(){    
        document.onkeydown=function(e){
            !e && (e=window.event);
            if(e.ctrlKey && (e.keyCode || e.which)==83) {
                alert('prout');
            }
           return false;
        }
    }
     
    }

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Bonjour, mon script parait nickel, cependant lorsque je fait CTRL + S la page se rafraichit, et toute les saisons des modifications sur ma page sont annulés... une idée ? (l'alert fonctionne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
    $(window).keypress(function(event) {
        if (!(event.which == 115 && event.ctrlKey)) return true;
     
    	document.forms['form_article'].submit()
    	alert("Ctrl-S pressed");
        return false;
    });
    </script>

  16. #16
    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
    Un submit effectué manuellement ne lance pas le onsubmit.

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script>
    $(window).keypress(function(event) {
        if (!(event.which == 115 && event.ctrlKey)) return true;
     
    	document.forms['form_article'].onsubmit() && document.forms['form_article'].submit()
    	alert("Ctrl-S pressed");
        return false;
    });
    </script>

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Ca ne marche tjr pas mais je pense avoir identifié la source du problème avec fiddler (sniffer bebuger).
    En effet, lorsque j'édit et que j'execute la fonction CTRL+S, la variable nommé :
    name : save value : engeristrer, ne passe pas dans le POST.

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    c'est peu etre lié à cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	if(count($_POST) and isset($_POST['save'])) {
    		//print_r($_POST);
    		$article_id = add_article($_POST);
    		if (!show_error()) {
    			header("Location: " . sprintf("%s?article=%u", $_SERVER['PHP_SELF'], $article_id));
    		}
    	}
    mais je ne vois pas comment résoudre cette histoire. Pour rappel mon boutton engeristrer c'est ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" id="btn" name="save" value="Enregistrer" />

Discussions similaires

  1. document.empr.submit() is not a function ! !
    Par King_T dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/02/2011, 18h53
  2. [DOM] from.submit() is not a function
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/08/2008, 17h09
  3. Erreur : document.test.submit is not a function
    Par King_T dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 16/05/2008, 23h09
  4. 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
  5. Créer un interpréteur de langage inspiré du Basic
    Par Picasso dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 11/05/2002, 17h10

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