jQuery:获取输入选择范围

时间:2012-12-13 07:31:18

标签: jquery

jQuery中是否有任何事件可以监听输入选择?

例如,假设我在文本输入中写了foo_bar。然后我用鼠标选择单词foo。因此,事件应返回0, 2foo的字符串位置)。

有没有办法实现这个目标?我不知道从哪里开始,我正在翻转jQuery API页面,但似乎找不到任何有用的东西。

我虽然在输入上监听mousedown个事件,然后以某种方式检索发生点击的字符串的位置(不确定它是否可能),然后获取mouseup的位置发生了。

欢迎任何信息,来源或示例。

2 个答案:

答案 0 :(得分:8)

修改

$('#foo').select(function(e) {
    var start = e.target.selectionStart;
    var end = e.target.selectionEnd;
    console.log('Changed: ' + start + ' to ' + end);
});

演示: http://jsfiddle.net/ZyDjV/1/


您可以使用选择事件:

$('#foo').select(function(e) {
   console.log('Selection Changed');
});

演示http://jsfiddle.net/ZyDjV/

答案 1 :(得分:2)

请参阅:http://jsfiddle.net/rT5vR/

var getSelected = function(){
var t = '';
if(window.getSelection) {
    t = window.getSelection();
} else if(document.getSelection) {
    t = document.getSelection();
} else if(document.selection) {
    t = document.selection.createRange().text;
}
return t;
}

$("#myElement").select(function(eventObject) {
alert(getSelected().toString());
});