文本框倒叙输入让输入框的焦点始终在最开始的位置_javascript技巧

所谓的文本框倒叙输入是指输入框的焦点始终在最开始的位置,如图所示,当我输入123456789时,在输入框上显示的是987654321。

为什么要做这个Demo?是因为在项目中遇到了,项目需求是两个输入框,一个正序输入,另一个倒叙输入。 下面我把实现的思路和代码写出来。
文本倒叙输入:

只要我们保证输入框的焦点始终在第一位,这样的话就可以实现每次我们输入的都在最前面,即倒叙

代码:

function setPosition(ctrl, pos) { //设置光标位置函数
if (ctrl.setSelectionRange) {
ctrl.focus();
ctrl.setSelectionRange(pos, pos);
} else if (ctrl.createTextRange) {
var range = ctrl.createTextRange(); //创建一个选择区域
range.collapse(true); //将光标移动到选择区域的开始位置
range.moveEnd('character', pos); //改变选择区域结束的位置
range.moveStart('character', pos); //改变选择区域开始的位置
range.select(); //将选择的内容同步到当前的对象
}
}

只要我们将参数pos设为0就可以了。

下面是一个完整的Demo,这个Demo实现了正常删除和倒叙输入。

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style>
.content {
width: 300px;margin:0 auto;margin-top:50px;
}
ul {
list-style: none;
}
.elem {
width: 200px;
}

</style>
<script src="http://cdn.staticfile.org/jquery/2.1.1-rc2/jquery.min.js"></script>
</head>
<body>
<div style="">
<ul>
<li>
<input type="text" class="elem">
</li>
<li>
<input type="text" class="elem">
</li>
<li>
<input type="text" class="elem">
</li>
</ul>
</div>
<script>
function setPosition(ctrl, pos) { //设置光标位置函数
if (ctrl.setSelectionRange) {
ctrl.focus();
ctrl.setSelectionRange(pos, pos);
} else if (ctrl.createTextRange) {
var range = ctrl.createTextRange(); //创建一个选择区域
range.collapse(true); //将光标移动到选择区域的开始位置
range.moveEnd('character', pos); //改变选择区域结束的位置
range.moveStart('character', pos); //改变选择区域开始的位置
range.select(); //将选择的内容同步到当前的对象
}
}
$('.elem').on('keypress keyup', function() {
if(event.keyCode === 8)
return;
setPosition(this,0);
});
</script>
</body>
</html>

另外在附上相关的获取焦点位置的函数,可能你会用到

function getPosition(ctrl) {
// IE Support
var CaretPos = 0;
if (document.selection) {
ctrl.focus();
var Sel = document.selection.createRange();
Sel.moveStart('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}

总结:

实现了设置和获取文本输入焦点,我们就可以做一些其他的特效,比如删除一整个单词或者变量等等。

如果你有关于此文的好想法,可以@me,希望此文能够帮助你!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索输入框
, 焦点
开始位置
javascript 数组倒叙、c 输入框 返回文本框、文本框和输入框、javascript 输入框、javascript弹出输入框,以便于您获取更多的相关知识。

时间: 2024-09-14 21:12:35

文本框倒叙输入让输入框的焦点始终在最开始的位置_javascript技巧的相关文章

Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法_javascript技巧

今天项目经理刚交给一个活儿,要我实现这样一个功能:要实现的是验证码文本框变窄一点,然后右边加入一副验证码图片,并且在响应式布局的情况下在移动端访问的时候验证码图片能保持和验证码文本框在同一行,这个怎么做?难为了半天,后来找到了实现思路,下面小编把我的想法及实现过程分享给大家,有问题欢迎提出,共同学习进步! 实现思路: 实现效果图 自己往里面加入bootstrap的栅格布局代码,控制在不同分辨率下面的排布情况. 这样实现唯一的前提条件就是你的验证码图片高度需要和input框的高度一样(input框

js实现文本框只允许输入数字并限制数字大小的方法_javascript技巧

本文实例讲述了js实现文本框只允许输入数字并限制数字大小的方法.分享给大家供大家参考.具体如下: 这是一个很个性的输入框特效,规定文本框只允许输入数字,如果你执意要输入其它的字符,则输入的字符将自动消失,除非你输入的是规定内的字符格式,并且对输入数字大小也有限制!为保证兼容性,请使用火狐浏览器. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-input-limit-num-codes/ 具体代码如下: <!DOCTYPE html PUB

文本框也能输入多重幂指数的方法

  "文本框"也能输入多重幂指数的方法,经常需要使用数学公式及数学符号的用户一定知道Word的公式编辑器,它可以轻松的完成多重幂指数这一数学公式,但是在这里我们介绍一个更加通俗的办法--"文本框法". "文本框"也是Word中的一个强有力的工具,通过它也可以达到我们的目的,单击"插入→文本框→横排",插入一个文本框,并在其中输入X,然后调整其大小和位置,并设置文本框的底色和线条色皆为无,指数y也可以使用文本框的方法输入,即可完

jsp页面-JSP页面登陆,一个账号文本框不管用户输入的是手机/邮箱都可以登陆

问题描述 JSP页面登陆,一个账号文本框不管用户输入的是手机/邮箱都可以登陆 解决方案 select * from table where @userinput = (phone or @userinput = email) and @password = pwd用类似这样的查询,or一下就可以了.假设userinput和password是输入 解决方案二: 做下判断就好了,有@和.com的字符串是邮箱,11位数字的书是手机号,其他的情况是用户名.需要注意的是在注册的时候用户名不能有@符号. 就

一个文本框,当输入一些字符后,通过ajax+jquery会从后台查到一些数据,当数据返回到页面上时,需要将文本框变成下拉框,下拉框中显示返回的数据,该怎么实现

问题描述 一个文本框,当输入一些字符后,通过ajax+jquery会从后台查到一些数据,当数据返回到页面上时,需要将文本框变成下拉框,下拉框中显示返回的数据,现在能得到数据,就是不知道怎么将原来的文本框变成下拉框 解决方案 解决方案二:做两个控件,根据情况隐藏一个,表示一个.document.getElementById("xxx").style.display="";//表示document.getElementById("xxx").styl

如何用javascript计算文本框还能输入多少个字符_基础知识

下面代码超简单,不多说了,直接上代码. //输入计数 //count:能輸入的數據總量 function Calculation(v, count) { var span = $(v).next(); var valLength = $(v).val().length; if (valLength > count) { $(v).val($(v).val().substr(0, count)); valLength = count; } span.text("您已輸入" + va

我在页面上有五个文本框,我想在输完最后一个文本框的内容以后,回车以后将五个文本框的内容都清空,并将焦点回到第一个文本框处

问题描述 我在页面上有五个文本框,我想在输完最后一个文本框的内容以后,回车以后将五个文本框的内容都清空,并将焦点回到第一个文本框处.该如何实现,请大家指教!我试了一下大虾们以前解答的帖子,document.formname.inputname.value="",它报错是"未声明名称'document'",请问我该如何声明呢?我用的是VS2005环境 解决方案 解决方案二:,document.formname.inputname.value=""是

求教通过VB.NET对软件(无开放API)文本框的自动输入

问题描述 问题描述:工作中的计算软件因为没有相应的API开放,但是某一些计算算例却并不需要重新输入,而仅仅需要修改某几个输入框的值,所以想通过程序对之前算例的输入内容自动读取然后再自动填入相应的文本框内.个人想法:通过程序来控制对软件菜单的单击操作(通过鼠标坐标),然后控制光标并依次定位于每一个文本框,读取原算例内容后,将相应的值自动填写进相应的框内,完成数据的快速输入.期望解答的内容:是否可行?若可以,我应该学习哪些内容?,希望不吝赐教,谢谢!!程序界面示意: 解决方案 解决方案二:api函数

JS添加删除一组文本框并对输入信息加以验证判断其正确性_javascript技巧

在做项目中遇到这样一个问题,就是我们需要添加几组数据到数据库,但是具体几组数据不确定,有客户来填写,比如我们需要添加打折策略,可能个策略有很多组方案,比如"满100打5折,满200打4折,满500打3折"等等,这是作为一组方案来执行的,但是并不确定一组方案中有几个子方案,所以,这里我用JS进行添加删除子方案,并要对方案输入的正确性加以判断,并且通过json传输写入数据库,这里我们主要写如果添加删除一组子项目和如果给每个文本框添加验证. 动态添加一组文本框: 复制代码 代码如下: var