2011-07-20 2 views
1

Je veux injecter la valeur sélectionnée dans la liste déroulante jWYSIWYG au curseur pointer.I veulent faire est comme ça:Injecter quelque chose dans jWYSIWYG au pointeur du curseur?

<select id="shirt" name="shirt"> 
     <option value="small">Small</option> 
     <option value="medium">Medium</option> 
     <option value="large">Large</option> 
</select> 
<a href="#" id="btn_insert" name="btn_insert">Insert</a> 
<textarea id="testing_txt" name="testing_txt"></textarea> 

Répondre

0

L'astuce est d'obtenir de manière fiable la position du curseur. J'ai trouvé comment le faire à partir d'un SO thread existant. Une fois que vous avez la position du curseur, il suffit d'obtenir le texte avant et après, puis d'insérer votre nouvelle valeur au milieu.

http://jsfiddle.net/Vr99u/1/

$("#mybutton").click(function() { 
var pos = getCaret(document.getElementById('mytextarea')); 
var currentText = $("#mytextarea").val(); 
var currentTextStart = currentText.substr(0, pos); 
var currentTextEnd = currentText.substr(pos, currentText.length); 
var newText = currentTextStart + $("#myselect").val() + currentTextEnd; 
$("#mytextarea").val(newText); }); 


function getCaret(node) { 
    if (node.selectionStart) { 
    return node.selectionStart; 
    } else if (!document.selection) { 
    return 0; 
    } 

    var c = "\001", 
     sel = document.selection.createRange(), 
     dul = sel.duplicate(), 
     len = 0; 

    dul.moveToElementText(node); 
    sel.text = c; 
    len = dul.text.indexOf(c); 
    sel.moveStart('character',-1); 
    sel.text = ""; 
    return len; 
} 
+0

oui .. votre lien http://jsfiddle.net/Vr99u/1/ est usful pour moi THz mrtsherman – kmith

Questions connexes