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 :

input construit à partir d'une div


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 24
    Points
    24
    Par défaut input construit à partir d'une div
    Bonjour,
    Je voudrais savoir si vous connaissez un petit plugin qui permet de simuler le comportement d'un input à partir d'une div.
    L'intérêt serait d'éviter l'affichage automatique du clavier sur les supports mobiles.

    Le code html serait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="divinput" class="so-inline-block" style="background:pink; width:10em; height: 1.6em;">
    <span id="content" tabindex="1">a</span><span class="blink">|</span>
    </div>
    Et le code javascript quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function blinker() {
        $('.blink').fadeOut(500);
        $('.blink').fadeIn(500);
    }
    setInterval(blinker, 1000);
    $("#content").on("keypress",function(e) {
      $(this).html($(this).html()+String.fromCharCode(e.which));
    });
    Le code est dégueulasse mais l'idée est là...
    ça doit bien exister...

  2. #2
    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 : 73
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Exemple :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
        <meta http-equiv="cache-control" content="public, max-age=60">
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1.0">
        <meta name="author" content="Daniel Hagnoul">
        <title>Test</title>
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/sunny/jquery-ui.css">
        <style>
     
            #divInput {
                padding: 0.3em;
                min-width: 10em;
                max-width: 15em;
                min-height: 1.6em;
                max-height: 3.2em; 
                overflow: auto;
                border: 0.1em solid blue;
                cursor: text;
            }
     
        </style>
        <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
        <script>
            "use strict";
     
            $( function(){ // forme abrégée de $(document).ready(function(){
     
                $( "#divInput[contenteditable]" )
                     .data({
                        "dvjhKey" : false,
                        "dvjhLength" : 0
                    })
                    .on({
                        "focusin" : function(){
                            var jObj = $( this );
     
                            jObj
                                .data( "dvjhLength", jObj.text().length )
                                .one( "keydown", function( event ){
                                    $( this ).data( "dvjhKey", true );
                                });
                        },
                        "focusout" : function( event ){
                            var jObj = $( this ),
                                lengthFinal = jObj.text().length,
                                lengthOrigine = jObj.data( "dvjhLength" );
     
                            if ( jObj.data( "dvjhKey" ) == true || lengthFinal != lengthOrigine ){
                                jObj
                                    .trigger( $.Event( "change" ) )
                                    .data( "dvjhKey", false );
                            }
                        },
                        "change" : function( event ){
                            var str = $.trim( $( this ).text() );
     
                            console.log( str );
     
                            alert( str );
                        }
                    });
     
            });
     
            $( window ).load( function(){
     
            });
        </script>
    </head>
    <body>
     
        <form>
            <fieldset>
                <label for="divInput">Votre nom : </label>
                <div id="divInput" tabindex="1" contenteditable></div>
            </fieldset>
        </form>
     
    </body>
    </html>

    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.)

  3. #3
    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,
    L'intérêt serait d'éviter l'affichage automatique du clavier sur les supports mobiles.
    on saisi comment le texte dans ce cas

    PS: Mieux vaut ne pas toucher aux habitudes prises ou à prendre.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    On répond avec une petite div popup juste en dessous du contrôle, et qui contient juste les boutons pour les chiffres et la virgule. L'intérêt, c'est surtout pour les champs de saisie exclusivement numériques !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    je regarde ça dans la journée.
    C'est toi qui l'a écrit, ou c'est extrait d'un plugin ?
    Merci à toi.

  6. #6
    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
    as tu essayé avec un <input type="number"

  7. #7
    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 : 73
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    on saisi comment le texte dans ce cas

    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.)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    le petit programme de DanielHagnoul marche bien, à ce que j'ai pu tester.
    Merci beaucoup !

  9. #9
    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 : 73
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Le code fonctionne bien, je l'utilise depuis longtemps, mais je travaille uniquement sur ordinateur et j'avais "zappé" un point important : "L'intérêt serait d'éviter l'affichage automatique du clavier sur les supports mobiles."

    Citation Envoyé par NoSmoking Voir le message
    Bonjour,

    on saisi comment le texte dans ce cas

    PS: Mieux vaut ne pas toucher aux habitudes prises ou à prendre.
    Ces remarques doivent être prises en considération.

    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éponses: 3
    Dernier message: 24/03/2012, 19h15
  2. activater un input grisé à partir d'une valeur particuliere d'un select
    Par fripette dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 20/05/2008, 11h27
  3. JTable construit à partir d'une requête
    Par jr_momo dans le forum Composants
    Réponses: 1
    Dernier message: 16/04/2007, 16h24
  4. [iframe] Afficher une balise div à partir d'une autre frame
    Par bouchette63 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/10/2006, 11h01
  5. Ajouter du texte dans un input à partir d'une autre fenêtre
    Par Michaël dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2005, 20h14

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