2010-09-02 45 views
2

在文本區域如何插入模式name下一個使用jQuery和後光標應該是該模式之後光標位置:這應該在按鈕上發生點擊jQuery的文字區域 - 插入模式光標位置

 <input type="button" value="insert pattern" > 
    <textarea rows="10" id="comments">INSERT The condition</textarea> 

回答

2

請參閱this answer。這就是我得到insertAtCaret()方法的地方。我繼續前進,將它連接到你的按鈕上......不確定你的意思是「模式name」。這是一個SQL的東西?它是基於HTML中的一些以前的輸入字段嗎?沒有更多細節,很難幫助更多。

function insertAtCaret(areaId,text) { 
    var txtarea = document.getElementById(areaId); 
    var scrollPos = txtarea.scrollTop; 
    var strPos = 0; 
    var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? 
     "ff" : (document.selection ? "ie" : false)); 
    if (br == "ie") { 
     txtarea.focus(); 
     var range = document.selection.createRange(); 
     range.moveStart ('character', -txtarea.value.length); 
     strPos = range.text.length; 
    } 
    else if (br == "ff") strPos = txtarea.selectionStart; 

    var front = (txtarea.value).substring(0,strPos); 
    var back = (txtarea.value).substring(strPos,txtarea.value.length); 
    txtarea.value=front+text+back; 
    strPos = strPos + text.length; 
    if (br == "ie") { 
     txtarea.focus(); 
     var range = document.selection.createRange(); 
     range.moveStart ('character', -txtarea.value.length); 
     range.moveStart ('character', strPos); 
     range.moveEnd ('character', 0); 
     range.select(); 
    } 
    else if (br == "ff") { 
     txtarea.selectionStart = strPos; 
     txtarea.selectionEnd = strPos; 
     txtarea.focus(); 
    } 
    txtarea.scrollTop = scrollPos; 
} 


$(document).ready(function(){ 
    $("#insertPattern").click(function(){ 
    insertAtCaret("comments","name"); 
    }); 
});​ 

然後,在你的HTML:

<input id="insertPattern" type="button" value="insert pattern" /> 
    <textarea rows="10" id="comments">INSERT The condition</textarea> 

希望這有助於!

+0

謝謝,我會從這裏弄明白.. – Rajeev 2010-09-02 13:49:11

相關問題