2012-11-08 92 views
2

我正在使用asp.net進行開發,並且在屏幕上有一個文本框,光標位於應該添加某些文本的位置。如何使用JavaScript更新文本框內光標位置處的文本

頁面上存在一個按鈕,或者至少它會這樣做,當按下按鈕時將文本插入到光標位於按鈕被按下的位置的文本框中,任何文本都不應丟失,只有在光標的位置。

這是可能的在JavaScript中,記住我不知道任何JavaScript超出警報('');當你點擊按鈕時,我確實明白光標位置可能會丟失。

實際上會有7個小按鈕,每個按鈕插入一個不同的字符串。

謝謝

+1

我不認爲這是可能的,可以將數據添加或prepent數據,我可能是錯的。 – freebird

+0

這被稱爲WYSIWYG .... –

+0

雖然有一個大的文本框可以很好,它可以將html或rtf寫回數據庫,並允許插入圖像和粗體文本等,這絕不是要求。要求實際上如上所述。可以在遊標位置插入文本的頁面上的單獨控件。 –

回答

3

是的,這是可能的。 這是我們使用的是做正是你需要做的是通過你的文本/ textarea的作爲第一個參數,並通過文本作爲第二個參數的函數,你在找什麼

// myfield: the DOM element that you need to interact with 
// myValue: the text to be instered 
function insertAtCursor(myField, myValue) { 
    //IE support 
    if (document.selection) { 
     myField.focus(); 
     sel = document.selection.createRange(); 
     sel.text = myValue; 
    } 
    //MOZILLA/NETSCAPE support 
    else if (myField.selectionStart || myField.selectionStart == '0') { 
     var startPos = myField.selectionStart; 
     var endPos = myField.selectionEnd; 
     myField.value = myField.value.substring(0, startPos) 
     + myValue 
     + myField.value.substring(endPos, myField.value.length); 
    } else { 
     myField.value += myValue; 
    } 
} 

,和BOOM,它的工作!

更新:一個活生生的例子:http://jsbin.com/owesik/1/edit

+0

所以myField基本上是我想要插入值的控件的ClientID。在ASP.NET中,我有ClientID和ID,ClientID是html控件的客戶端ID。我會舉這個例子去謝謝 –

+0

我想爲你做一個例子,堅持下去。 –

+0

不用了,我現在有一個運行的例子。我的疏忽是文本框在GridView中,所以在運行時我無法將一個按鈕與用戶所在的文本框相關聯。更有可能的是,我需要找到在用戶按下按鈕時焦點集中的控件,然後得到該ID並打電話給你的功能,謝謝:) –

0

請參閱this answer幾個指針。

短版是「是的,這是可能的,至少在最近的瀏覽器中」。但是,您需要自學一些JavaScript才能使其工作。我個人推薦這個online book(並且我絕不隸​​屬於作者)。

相關問題