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 :

Désactiver la saisie clavier d'une TEXTAREA


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Reconverti Dev Web
    Inscrit en
    Septembre 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Reconverti Dev Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2019
    Messages : 88
    Par défaut Désactiver la saisie clavier d'une TEXTAREA
    Bonjour,

    Je suis entrain de développer une calculatrice en HTML/JS et je suis confronté a un petit problème.

    Afin d'eviter de rendre trop compliqué le programme, j'ai fais mon propre clavier en HTML/CSS (1234567890 . /*-+=)
    Ceci pour éviter d'utiliser le clavier du PC ou celui du mobile afin de limiter de mettre n'importe quelle caractère.

    Néanmoins, ceci n'est pas pratique quand on veut modifier la saisie en cas de faute.

    Donc je voudrais qu'on puisse mettre le curseur là ou on souhaite mais que les modifications ne se fasse que via mon clavier.

    Les entrées se font actuellement via un textaera, mais si je fais un "readonly", on ne peut pas afficher le curseur.

    Avez vous une idée simple qui permette de désactiver totalement la saisie au clavier sur PC comme sur Mobile sans affecter la position du curseur de la souris ou du doigt sur le texte?

    Cdt.

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Bonjour,

    disabled est ton ami.

  3. #3
    Membre confirmé
    Homme Profil pro
    Reconverti Dev Web
    Inscrit en
    Septembre 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Reconverti Dev Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2019
    Messages : 88
    Par défaut
    Le probleme avec disabled c'est que le curseur est lui aussi desactivé .

    Je voudrais qu'il reste actif (entrain de clignoter) sans pour tant qu'on puisse utiliser le clavier.

    Afin d'etre obligé d'utiliser le clavier de l'application.

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Le contrôle total restera difficile;
    Il vaut mieux contrôler (regexp, isNaN, étude de chaînes acceptables ou pas...) les saisies clavier plutôt que d'avoir à ajouter sans cesse des options nouvelles à ton clavier. L'utilisateur te remerciera.

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Ben tu pourrais traiter les événements claviers (onkeydown, onkeypress) et dans le gestionnaire tu annules le comportement par défaut...

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Tiens je te met un exemple simple que tu peux tester ici : https://jsbin.com/suhoyuqixa/edit?ht...console,output

  7. #7
    Membre confirmé
    Homme Profil pro
    Reconverti Dev Web
    Inscrit en
    Septembre 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Reconverti Dev Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2019
    Messages : 88
    Par défaut
    C'est une bonne idée!, ça me permet bien de garder le curseur, parcontre sur mobile quel est l'équivalent? (touch?)

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Alors j'ai quelque chose qui semble fiable


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form>
    	<textarea id="t"></textarea>
    	<input id="b" type="button" value="Ecrire " /> 
    </form>
    (le bouton "écrire" ajoute un chiffre aléatoire)

    Code javascript : 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
    // clavier et collage sont inhibés
    document.getElementById("t").addEventListener("keydown",function(e){
    	e.preventDefault()},{passive:false})
    document.getElementById("t").addEventListener("paste",function(e){
    	e.preventDefault()},{passive:false})
     
    // Un clic sur le bouton (imaginons que ce soit ta calculatrice):
    // - ajoute du texte à l'endroit où se trouve ton curseur
    // - donne le focus à la zone de texte
    // - remplace le texte sélectionné, quand c'est le cas
    // - replace le curseur à la fin de l'ajout (ou, pourquoi pas, du retrait, avec ta calculatrice)
    document.getElementById("b").addEventListener("click",function(e){
    	document.getElementById("t").setRangeText(Math.floor(Math.random()*10),
    	document.getElementById("t").selectionStart,
    	document.getElementById("t").selectionEnd,
    	"end");
    	document.getElementById("t").focus()
    })

  9. #9
    Membre confirmé
    Homme Profil pro
    Reconverti Dev Web
    Inscrit en
    Septembre 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Reconverti Dev Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2019
    Messages : 88
    Par défaut
    Ca fait 3h que je suis dessus, en travaillant justement sur ces fameux parametres selectionStart et selectionEnd!
    Parcontre, je ne connaissais pas "setRangeText", ton programme semble beaucoup plus court que le mien !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    element.onclick = () =>  //element est le bouton cliqué sur ma page
    		{	 	
    			let text = calculLine.value; //(calculLine est mon textaera)
    			let start = calculLine.selectionStart;
    			let end = calculLine.selectionEnd;
                            let key = "+" // valeur de la touche + sur mon clavier
     
    			if (end-start >= 0) calculLine.value=text.slice(0,start) + key + text.slice(end); // remplace la selection par key
     
    			else calculLine.value+= key;  //ou rajoute cette valeur à la fin du texte
    		};
    Parcontre, on fait comment sur mobile? ca peut marcher avec touchstart et touchend?

  10. #10
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par nadfri2019 Voir le message
    [...] Avez vous une idée simple qui permette de désactiver totalement la saisie au clavier sur PC comme sur Mobile sans affecter la position du curseur de la souris ou du doigt sur le texte?

    Cdt.
    Désactiver oui, mais pour le respect des autres conditions il faut tester.
    Voir Web, on peut bloquer les actions de l'utilisateur !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. Récupérer une saisie clavier de l'utilisateur
    Par le y@m's dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 23/09/2019, 19h25
  2. Saisie clavier sur une interface
    Par Latimer dans le forum EDT/SwingWorker
    Réponses: 2
    Dernier message: 01/05/2014, 11h49
  3. [visual c++ 6] Simuler la saisie clavier d'une phrase complète
    Par polnioumane dans le forum Visual C++
    Réponses: 4
    Dernier message: 21/07/2008, 11h04
  4. bloquer saisie d une textarea
    Par jeanPaul dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 07/03/2006, 10h34
  5. [Stratégie] attendre un évenement sur une saisie clavier?
    Par ukanoldai dans le forum Général Java
    Réponses: 4
    Dernier message: 28/02/2006, 17h05

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