如何使用JavaScript在keypress上找到输入字符串的字符的位置?我正在尝试构建一个输入掩码,不允许用户输入超过13个字符。
答案 0 :(得分:1)
我认为直接问题的答案是输入字段的selectionStart
属性会告诉您插入光标的位置。
function myKeypress() {
console.log(this.selectionStart); // tells you where the insertion cursor is
}
通过查看selectionEnd
,您可以看到是否选择了一个或多个字符,而不仅仅是一个简单的插入点。
答案 1 :(得分:0)
这样的事情可能有用:
<html>
<body>
<form>
<input type="text" name='element1' maxlength="13" />
</form>
</body>
</html>
答案 2 :(得分:0)
在浏览器中试用此代码 - 应该为您提供完成任务的工具。
<html>
<body>
<script type="text/javascript">
function getTextAreaSelection() {
var textArea = document.getElementById('textarea1');
if (document.selection) { //IE
var bm = document.selection.createRange().getBookmark();
var sel = textArea.createTextRange();
sel.moveToBookmark(bm);
var sleft = textArea.createTextRange();
sleft.collapse(true);
sleft.setEndPoint("EndToStart", sel);
textArea.selectionStart = sleft.text.length
textArea.selectionEnd = sleft.text.length + sel.text.length;
textArea.selectedText = sel.text;
}
else if (textArea.selectionStart){ //FF
textArea.selectedText = textArea.value.substring(textArea.selectionStart,textArea.selectionEnd);
}
alert("Selection Start==> " + textArea.selectionStart + "\n" +
"Selection End ==> " + textArea.selectionEnd + "\n" +
"Selected Text ==> " + textArea.selectedText + "\n" +
"TextArea Value ==> " + textArea.value);
}
</script>
<form>
<textarea id="textarea1">Hello world</textarea>
<input type="button" onClick="getTextAreaSelection();return false;" value="Get Selection"/>
</form>
</body>
</html>