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 :

perte de focus lors de la creation d'input text avec innerhtml


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut perte de focus lors de la creation d'input text avec innerhtml
    Bonjour,

    je crée d'abord un champ de type text, lorsqu'on clique sur cet element un autre champ de type text se crée, mais je perds le focus de cet element malgré le "this.focus()" donc pas moyen de saisir quoique ce soit

    Merci.

    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>
    var toto = 1;
     
    function addinput(){			
    	document.getElementById('prodplus').innerHTML += "<table><tr><td><input type=\"text\" size=\"6\" onclick=\"addinput();this.focus();\" name=\"\'imp\' + toto\"></td></tr></table>";
    	toto++;
    }
    </script>
     
     
    <tr id="lotprod">	
    	<td>Ref Produits: </td>
    	<td>
    		<input type="text" size="6" onclick="addinput();focus();" name="imp0"> 
    	</td>
    </tr>
     
    <tr>
    	<td></td>
    	<td id="prodplus">
    	</td>
    <tr>

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    je crée d'abord un champ de type text, lorsqu'on clique sur cet element un autre champ de type text se crée, mais je perds le focus de cet element malgré le "this.focus()" donc pas moyen de saisir quoique ce soit

    Merci.

    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
     
    <script>
    var toto = 1;
     
    function addinput(){			
    	document.getElementById('prodplus').innerHTML += 
    "<table><tr><td><input type=\"text\" size=\"6\" 
    onclick=\"addinput();this.focus();\" name=\"\'imp\' + toto\"></td></tr></table>";
    	toto++;
    }
    </script>
     
     
    <tr id="lotprod">	
    	<td>Ref Produits: </td>
    	<td>
    		<input type="text" size="6" onclick="addinput();focus();" name="imp0"> 
    	</td>
    </tr>
     
    <tr>
    	<td></td>
    	<td id="prodplus">
    	</td>
    <tr>

  3. #3
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    ??? heu le this.focus tu le mets dans le onclick ...

    tout objet prend naturellement le focus quand on clicke dessus ...

    et tu veux qu'il le prenne quand le focus ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    justement quand le bouton se crée il perd automatiquement le focus, ce que je ne comprends pas, j'ai mis le this.focus pour tester mais rien ne change

  5. #5
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" size="6" onclick="addinput(this);" name="imp0">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function addinput(origine){			
    	document.getElementById('prodplus').innerHTML += 
    "<table><tr><td><input type=\"text\" size=\"6\" 
    onclick=\"addinput();this.focus();\" name=\"\'imp\' + toto\"></td></tr></table>";
    	toto++;
    origine.focus()
    }
    </script>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    merci de ton interet mais je ne garde pas le focus dans le champ cliqué.

    si tu colle ca dans un .html, on ne peut rien saisir dans les champs suivant celui d'origine

    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
     
    <html>
    <body>
    <script>
    var toto = 1;
     
    function addinput(origine){			
    	document.getElementById('prodplus').innerHTML += "<table><tr><td><input type=\"text\" size=\"6\" onclick=\"addinput(this);this.focus();\"></td></tr></table>";
    	toto++;
    origine.focus()
    }
    </script>
     
    <table>
    <tr id="lotprod">	
    	<td>Ref Produits: </td>
    	<td>
    <input type="text" size="6" onclick="addinput(this);" name="imp0"> 
    </td>
    </tr>
     
    <tr>
    	<td></td>
    	<td id="prodplus">
    	</td>
    <tr>
    </table>
    </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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    desolé alors j'ai rien compris à ce que tu voulais faire ...

    réexeplique le principe de base ..., quel est le but de la manoeuvre et le deroulement supposé des opérations ...

    en gros tu clicques sur quoi quand et ça doit faire quoi ...
    "cet element garde le focus " heu oui lequel ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    je crée un premier champ, lorsque tu le remplis, un deuxieme champ apparait pour mettre le produit suivant et ainsi de suite, le probleme c'est que les champs ont l'air en read only, que j'ai deja essayé de passer a false sans succes, donc pas moyen de saisir les produits suivants...

  9. #9
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    ha ....
    oulà ...
    innerHTML + table .... bref on reviendra là dessus ...


    quand on le remplit ??? la focntion me semble lancée sur le onclick pas sur le remplissage ...

    alors precise moi
    le nouveau champs il doit se créer quand exactement et quand doit il prendre le focus ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    ben le probleme c'est pas vraiment le moment ou il apparait mais c'est plutot le fait que je ne puisse rien saisir dans les champs créés...

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    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
    14
    15
    <script type='text/javascript'>
    function addInput(){
    var NewInput=document.createElement('input')
    NewInput.type='text'
    document.body.appendChild(NewInput)
    document.body.appendChild(document.createElement('br'))
    }
    </script>
     
    </head>
     
    <body>
    <input type='button' onclick="addInput()" value='ajouter' /><br/>
    </body>
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    dac j'étais justement en train de m'interesser a DOM...merci je vé essayer de transformation a la convenance de Monsieur le Chef

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    j'ai tenté ceci qui ne fonctionne pas :

    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
     
     
    <html>
    <head>
    <script type='text/javascript'>
     
    var i = 1;
     
    function addInput(){
     
    	var NewInput=document.createElement('input')
    	NewInput.type='text'
     
    	NewInput.setAttribute("name","imp"+i);
    	NewInput.setAttribute("onClick","javascript:addInput();");
     
    	//document.body.appendChild(NewInput)
    	//document.body.appendChild(document.createElement('br'))
    	document.getElementById('toto').appendChild(NewInput)
    	document.getElementById('toto').appendChild(document.createElement('br'))
    }
    </script>
     
    </head>
     
    <body>
    <div id="toto">
     
    </div>
    <input type='text' name="imp0" ><br>
     
    </body>
    </html>

  14. #14
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    j'ai oublié le addInput de depart..pardon...tout marche merci!

  15. #15
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    NewInput.name="imp"+i;
    NewInput.onClick=function(){addInput()}
    et tu as du oublier aussi d'incrémentrer le i ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  16. #16
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    yes merci, sinon petite question dom, doit on fermer les balises?

    pour : document.getElementById('prodplus').appendChild(document.createElement('table'))

    doit on ecrire :
    document.getElementById('prodplus').appendChild(document.createElement('/table'))

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    tu auras peut être un souci avec le i genre ils auront tous le même name ...
    si c'est le cas j'ai une soluce ... dis moi ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  18. #18
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    non la creation crée automatiquement la balsie de fermetur ...
    mais je te vois venir et je penses que tu aurais plus vite fait des faire un cloneNode ...
    avoir en fait la balise table complète avec l'input et la cloner ...

    file moi le html fini d'un table et je te fais un exemple ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <script>
     
    var i = 1;
     
    function addInput(){			
    	var NewInput=document.createElement('input')
    	NewInput.type='text'
     
    	NewInput.setAttribute("size","6");
    	NewInput.setAttribute("name","imp"+i);
    	NewInput.setAttribute("onfocus","javascript:addInput();");
     
    		document.getElementById('prodplus').appendChild(document.createElement('table'))
    document.getElementById('prodplus').appendChild(document.createElement('tr'))
    document.getElementById('prodplus').appendChild(document.createElement('td'))
    document.getElementById('prodplus').appendChild(NewInput)
    //document.getElementById('prodplus').appendChild(document.createElement('/td'))
    //document.getElementById('prodplus').appendChild(document.createElement('/tr'))
    //document.getElementById('prodplus').appendChild(document.createElement('/table'))		
    		i++;
    }
    </script>
     
    <tr id="lotprod" style="visibility:hidden">	
     
    <td>Ref Produits: </td>
    <td>
    				<input type="text" size="6" onfocus="addInput()" name="imp0"> 
    </td>
    </tr>
     
    <tr>
    <td></td>
    <td id="prodplus">
    </td>
    <tr>

  20. #20
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Bon alors je recommence ...

    donne moi plutot le code html d'un tableau fini

    quelle est la partie à reproduire ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/08/2010, 13h48
  2. Réponses: 1
    Dernier message: 03/06/2010, 15h36
  3. [SP-2007] pertes des parametres lors d'une creation de site avec modele
    Par padej450 dans le forum SharePoint
    Réponses: 1
    Dernier message: 04/06/2009, 14h49
  4. Réponses: 0
    Dernier message: 20/01/2008, 11h18
  5. Perte de focus lors d'un CDialog::Create
    Par Zalan dans le forum MFC
    Réponses: 2
    Dernier message: 25/07/2006, 14h57

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