所謂的文字方塊倒敘輸入是指輸入框的焦點總是在最開始的位置,如圖所示,當我輸入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 > <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,希望此文能夠幫助你!

Asetofpointsonaplainsurfacethatformsacurvesuchthatanypointonthatcurveisequidistantfromapointinthecenter(calledfocus)isaparabola.Thegeneralequationfortheparabolaisy=ax2+bx+cThevertexofaparabolaisthecoordinatefromwhichittakesthesharpestturnwhereasaisth

jquery去除焦点的方法:1、通过“document.getElementById('test').focus()”获取焦点;2、使用“document.getElementById('test').blur();”方法移除焦点即可。

实现jQuery输入框限制数字和小数点输入在Web开发中,我们经常会遇到需求需要控制用户在输入框中输入的内容,比如限制只能输入数字和小数点。这种限制可以通过JavaScript和jQuery来实现。下面将介绍如何使用jQuery实现输入框限制数字和小数点输入的功能。一、HTML结构首先,我们需要在HTML中创建一个输入框,代码如下:

本篇文章给大家带来了关于CSS的相关知识,其中主要介绍了怎么用CSS实现一个简单又高大上的输入框,手把手教你哦~下面一起来看一下吧,希望对需要的朋友有所帮助。

如何优化Vue开发中的输入框输入长度限制问题引言:在Vue开发过程中,输入框长度限制是一个常见的需求。限制用户在输入框中输入的字符个数有助于保持数据的准确性、优化用户体验以及提高系统的性能。本文将介绍如何优化Vue开发中的输入框输入长度限制问题,以提供更好的用户体验和开发效率。一、使用v-model指令绑定输入框值在Vue开发中,我们通常使用v-model指

随着Web应用的发展,带标签的输入框越来越受欢迎。这种输入框可以让用户更方便地输入数据,同时也方便用户对已输入的数据进行管理和搜索。Vue是一款非常强大的JavaScript框架,它可以帮助我们快速地实现带标签的输入框。本文将介绍如何使用Vue实现带标签的输入框。第一步:创建Vue实例首先,我们需要在页面上创建Vue实例,代码如下:&l

在HTML页面跳转到PHP页面时,如果需要在姓名输入框中加入必填要求,可以通过HTML的表单元素和JavaScript实现。下面将详细介绍如何实现这一功能,并附上具体的代码示例。首先,我们创建一个HTML页面,包含一个表单和一个姓名输入框。在姓名输入框中设置一个“必填”标记,可以通过JavaScript来实现对该输入框的必填验证。当用户点击提交按钮时,如果姓

使用PHP函数"array_unshift"将元素插入到数组的开始位置PHP是一种广泛使用的服务器端脚本语言,用于创建动态网页。在PHP中,数组是一种非常重要的数据结构,用于存储和操作一组数据。有时候我们需要在数组的开始位置插入一个元素,这时就可以使用PHP内置函数"array_unshift"。"array_unshift"函数的作用


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境