2011-07-14 105 views

回答

2

您可以使用selectionStart來獲取插入符的位置,所以:

var caretpos = $('input').prop('selectionStart'); 
var value = $('input').val().substring(0, caretpos); 

http://jsfiddle.net/Zzkaw/

其實,顧名思義,是用來選擇selectionStart。但是,如果沒有選擇,selectionStart === selectionEnd和值表示插入位置。

1

假設你正在處理<input type="text">而不能換行,以下操作將起作用。不幸的是,IE < 9沒有其他瀏覽器具有的明智selectionStartselectionEnd屬性,因此您必須使用TextRange秒。

的jsfiddle:http://jsfiddle.net/UcnCc/

代碼:

function getTextToCaret(input) { 
    var caretPos = 0; 
    if (typeof input.selectionStart == "number") { 
     caretPos = input.selectionStart; 
    } else if (document.selection) { 
     input.focus(); 
     var textRange = input.createTextRange(); 
     var selRange = document.selection.createRange(); 
     textRange.setEndPoint("EndToStart", selRange); 
     caretPos = textRange.text.length; 
    } 
    return input.value.slice(0, caretPos); 
}