获取输入内的单击字符位置(不是坐标)

时间:2016-10-13 08:26:39

标签: javascript html5

我试图在输入中获取点击的字符位置。这意味着如果我的输入包含文本abcdef并且我在bc之间单击,则我的单击侦听器(在我的输入元素内)将返回2

2 个答案:

答案 0 :(得分:3)

$(document).on("click", function() {
      
        var $txt = $("#txt");
        var caretPos = $txt[0].selectionStart;
        var textAreaTxt = $txt.val();
       console.log(caretPos);
        console.log(textAreaTxt[caretPos]);
    });
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  
</head>
<body>
<input id="txt" rows="15" cols="70"/>

</body>
</html>

Something like this?这基本上构建了quik_silv anwser,你获得了游标的索引值,然后得到文本字段的值,并通过点击按钮的索引检索一个值,但可以很容易改变了

$("#btn").on('click', function() {
    var $txt = $("#txt");
    var caretPos = $txt[0].selectionStart;
    var textAreaTxt = $txt.val();

    console.log(caretPos);
    console.log(textAreaTxt[caretPos]);
});

答案 1 :(得分:0)

//Try this

<input id="text" type="text" value="EXAMPLE" size="20" />
<script type="text/javascript">
    document.getElementById('text').addEventListener('click', function() {
    var length = this.value.length;
    var x =length-(length-this.selectionStart)
alert(x);
},
false);