Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符串中的onkeyup字符位置_Javascript_Html - Fatal编程技术网

Javascript 字符串中的onkeyup字符位置

Javascript 字符串中的onkeyup字符位置,javascript,html,Javascript,Html,如何使用JavaScript在键盘上找到输入字符串的字符的位置?我正在尝试构建一个输入掩码,不应允许用户输入超过13个字符。类似的想法可能会奏效: <html> <body> <form> <input type="text" name='element1' maxlength="13" /> </form> </body> </html> 在你的浏览器中试试这段代码——它会给你完成任务的工具 <h

如何使用JavaScript在键盘上找到输入字符串的字符的位置?我正在尝试构建一个输入掩码,不应允许用户输入超过13个字符。

类似的想法可能会奏效:

<html>
<body>


<form>
<input type="text" name='element1' maxlength="13" />
</form>

</body>
</html>

在你的浏览器中试试这段代码——它会给你完成任务的工具

<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>

函数getTextAreaSelection(){
var textArea=document.getElementById('textarea1');
if(document.selection){//IE
var bm=document.selection.createRange().getBookmark();
var sel=textArea.createTextRange();
选择移动图书(bm);
var sleft=textArea.createTextRange();
sleft.collapse(真);
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);
}
警报(“选择开始==>”+textArea.selectionStart+“\n”+
“选择结束==>”+textArea.selectionEnd+“\n”+
“所选文本==>”+textArea.selectedText+“\n”+
“TextArea Value==>”+TextArea.Value);
}
你好,世界

我认为您的直接问题的答案是输入字段的
selectionStart
属性将告诉您插入光标的位置

function myKeypress() {
    console.log(this.selectionStart);  // tells you where the insertion cursor is
}

通过查看
selectionEnd
,您可以看到是否也选择了一个或多个字符,而不仅仅是一个简单的插入点。

您能稍微澄清一下您的问题吗?举个例子吧?如果你想限制他们可以键入的字符数,你真的需要
keypress
,而不是
keypup
。(思考键重复)难道你不应该检查字段的长度而不是courser位置吗?我认为你真正想要的是测量输入的长度。val()然后。slice(0,13)如果更长。当然,这是一个13位的id字段,我已经有了一个onkeypress功能,如果用户点击的键不是数字,输入将不会被记录,也会被加载。该字段填充13个0,现在我想用用户输入替换0,因此,如果用户点击了0的一半,我需要知道,在键盘上,他正在用一个输入替换第6个0,这在两个级别上都不起作用。你应该编辑它。这是可行的,但现在我仍然需要用按键上的用户输入替换0。这一切都很完美,但我仍然需要用使用javascript而不是Jquare的incommin用户输入替换0。本例的相关部分是
这一部分。selectionStart
与jQuery无关,在普通JS中可以正常工作。如果你给我们举一个你自己使用的代码的例子,我会以此为基础。