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

jQuery Discussion :

Curseur dans un textarea


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 123
    Par défaut Curseur dans un textarea
    Bonjour à tous,

    Le but est simple : J'ai un bouton qui affiche une popup (en jquery) qui permet à l'utilisateur de taper une URL. L'URL est ensuite placée dans un textarea avec des balises BBCode. Le problème intervient s'il y a déjà du texte dans la zone. Quelque soit la position du curseur, les tags URL seront toujours présent au début.

    Pouvez vous m'aider à résoudre ce problème ???

    Le head avec les scripts :
    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
    /*****************************
    	NORMAL TAGS FUNCTIONS
    *****************************/
    function insertTag(startTag, endTag, textareaId, tagType) {
    	var field  = document.getElementById(textareaId); 
    	var scroll = field.scrollTop;
    	field.focus();
    	/* Get selection */
    	if (window.ActiveXObject) {
    		var textRange = document.selection.createRange();            
    		var currentSelection = textRange.text;
    	} else {
    		var startSelection   = field.value.substring(0, field.selectionStart);
    		var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
    		var endSelection     = field.value.substring(field.selectionEnd);               
    	}
    	/* Insert */
    	if (window.ActiveXObject) {
    		textRange.text = startTag + currentSelection + endTag;
    		textRange.moveStart("character", -endTag.length - currentSelection.length);
    		textRange.moveEnd("character", -endTag.length);
    		textRange.select();     
    	} else {
    		field.value = startSelection + startTag + currentSelection + endTag + endSelection;
    		field.focus();
    		field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
    	} 
    	field.scrollTop = scroll;     
    }
    function cancel(){
    	window.history.back(-1);
    }
    /***********************
    	JQUERY FUNCTIONS
    ***********************/
    $(function() {
    	var url = $( "#url" );
    	$( "#dialog" ).dialog({
    		autoOpen: false,
    		buttons: {
    			"Ajouter URL": function() {
    				var starttag = "<a href="http://\"" + url.val() + "\"" target="_blank">";
    				$( this ).dialog( "close" );
    				insertTag(starttag,'</a>','textarea');
    			},
    			Cancel: function() {
    				$( this ).dialog( "close" );
    			}
    		}
    	});
    	$( "#urlopener" ).click(function() {
    		$( "#dialog" ).dialog( "open" );
    	});
    });
    Le body :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <body>
    <form id="modifier" action="..." method="post">
    	<img src="../images/editor/link.png" alt="url" id="urlopener"/>
    	<textarea id="textarea" name="modifycontent" cols="91" rows="20"><?php echo($htmlcontent) ?></textarea>
    </form>
    <!-- JQUERY Dialogs -->
    <div id="dialog" title="URL dialog">
    	<form>
    		<fieldset>
    		<label for="name">URL</label><input type="text" name="url" id="url" class="text ui-widget-content ui-corner-all" value="http://">
    		</fieldset>
    	</form>
    </div>
    </body>

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    il existe de splugins jquery ...
    dont :
    http://www.examplet.org/jquery/caret.php
    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 !

  3. #3
    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 : 74
    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
    Bonsoir

    Il y a aussi mon plugin dvjhBBCodeTextarea

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

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 123
    Par défaut
    Merci SpaceFrog

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

Discussions similaires

  1. Aujouter du texte à la position du curseur dans un textarea
    Par xess91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/05/2009, 13h01
  2. placer curseur dans un textarea
    Par fattouch_squall dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 02/12/2007, 15h56
  3. Poistion du curseur dans un textarea
    Par Yoshidu62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/06/2006, 12h24
  4. gestion de la position du curseur dans un textarea
    Par XavierWRC dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2006, 12h56
  5. Recuperer la position du curseur dans un textarea
    Par Tabrar dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/02/2006, 17h40

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