如何在<textarea>使用JavaScript中获得插入位置?
例如: This is| a text
这应该回来了7.
如何让它返回光标/选择周围的字符串?
例如:'This is', '', ' a text'.
如果突出显示"是"一词,那么它将返回'This ', 'is', ' a text'.
我有一个textarea,我想知道如果我在textarea的最后一行或textarea的第一行用我的光标用JavaScript.
我想到抓住第一个换行符和最后一个换行符的位置,然后抓住光标的位置.
var firstNewline = $('#myTextarea').val().indexOf('\n');
var lastNewline = $('#myTextarea').val().lastIndexOf('\n');
var cursorPosition = ?????;
if (cursorPosition < firstNewline)
// I am on first line.
else if (cursorPosition > lastNewline)
// I am on last line.
Run Code Online (Sandbox Code Playgroud)
除非JavaScript简单或简单,否则首选jQuery解决方案.
有没有什么方法可以在jQuery中获取文本输入中的当前光标位置,而无需使用丑陋的浏览器特定代码?
像:
<input id="myTextInput" type="text" value="some text" >
Run Code Online (Sandbox Code Playgroud)
光标在"某些文本"的"x"之后,我可以得到"8"?
TL; DR - 使用非常轻巧和强大的textarea-caret-position 组件库,现在也支持<input ype="text">它.演示http://jsfiddle.net/dandv/aFPA7/
有没有办法知道插入符号在HTML文本字段中的位置?
<input type='text' />
Run Code Online (Sandbox Code Playgroud)
我想根据插入符的位置以像素(并重新定位)div的位置.
注意:我不想知道字符或字符中的位置
<textarea>.我想知道<input>元素中的像素位置.
IE允许我在输入元素中创建一个文本范围,我可以在其上调用getBoundingClientRect()并获取某个字符或光标/插入符号的像素位置.有没有办法在其他浏览器中以像素为单位获取某个角色的位置?
var input = $("#myInput")[0];
var pixelPosition = null;
if (input.createTextRange)
{
var range = input.createTextRange();
range.moveStart("character", 6);
pixelPosition = range.getBoundingClientRect();
}
else
{
// Is there any way to create a range on an input's value?
}
Run Code Online (Sandbox Code Playgroud)
我正在使用jQuery,但我怀疑它能否解决我的问题.我期待一个纯JavaScript解决方案,如果有的话,但欢迎jQuery的答案.
我有一个简单的textarea,我需要制作透明字母,同时允许文本插入符号可见.当我应用以下规则时,我会得到隐形插入符号:
textarea {
background: transparent;
opacity: 0;
}
Run Code Online (Sandbox Code Playgroud)
当我输入不可见的文本时,我需要看到text-caret移动.
编辑:我需要编辑编辑表格中的td单元格.当我点击一个单元格时,我会显示一个textarea并开始输入.在每个字母上,我在单元格中插入一个上下文.在那之后,我隐藏了一个textarea.
如何在html输入框中输入数字时格式化数字?
所以例如,我想输入数字2000,当我键入第4位时,文本(当前显示在文本框中)将自动格式化为2,000(用逗号).
//my modified code based on Moob answer below
<input type="text" class="formattedNumberField" onkeyup="myFunc()">
//jQuery
$(".formattedNumberField").on('keyup', function(){
var n = parseInt($(this).val().replace(/\D/g,''),10);
$(this).val(n.toLocaleString());
});
function myFunc(){
// doing something else
}
Run Code Online (Sandbox Code Playgroud)
虽然这个代码工作完美,如Moob Fiddle所示,它不能在我的结束可能因为我在输入框中有另一个onkeyup事件???
我正在尝试在用户按下按钮时将文本插入到html文本框中.这是一个简单的屏幕数字键盘.我发现许多不同的脚本声称能够在文本框交叉浏览器中找到当前光标位置,但在IE中没有任何工作(我使用的是IE8).这只是一个IE8缺陷吗?有解决方法吗?
似乎某个地方必须有一个确定的答案,但我看起来远远没有用.重申一下,如何在html文本框中找到当前光标位置?
鉴于以下输入:
123456781234567812345678
Run Code Online (Sandbox Code Playgroud)
我想完成以下事项:
12345678,12345678,12345678
Run Code Online (Sandbox Code Playgroud)
目前,完成此任务的工作目前为:
parts = parts.replace(/\B(?=(\d{8})+(?!\d))/g, ",");
Run Code Online (Sandbox Code Playgroud)
我得到的问题是正则表达式从右到左读取.我创建了一个JSFIDDLE来显示问题.我得到的结果是这样的.
123,45678910,12345678
Run Code Online (Sandbox Code Playgroud)
最后,当我使用箭头键移动时,它会将我抛回到输入的末尾.