2011-07-20 16 views
1

我想在光標pointer.I想做注入在jWYSIWYG下拉選擇的價值就是這樣:在光標指針處注入jWYSIWYG中的內容?

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

回答

0

關鍵是要得到光標位置可靠。我發現如何從現有的SO thread做到這一點。一旦你有了光標位置,只需要獲得文本前後的內容,然後在中間插入新值。

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

是的..你的鏈接http://jsfiddle.net/Vr99u/1/是usful我 太赫茲mrtsherman – kmith