光标输入框定位和获取位置

应用场景, 这指定的输入框中不同的文本位置,插入 标识符。

 

核心代码 

 

//光标定位的处理jquery-position.js中的核心代码


$.fn.extend({
    position:function( value ){
        var elem = this[0];
        if (elem&&(elem.tagName=="TEXTAREA"||elem.type.toLowerCase()=="text")) {
            if($.browser.msie){
                var rng;
                if(elem.tagName == "TEXTAREA"){
                    rng = event.srcElement.createTextRange();
                    rng.moveToPoint(event.x,event.y);
                }else{
                    rng = document.selection.createRange();
                }
                if( value === undefined ){
                    rng.moveStart("character",-event.srcElement.value.length);
                    return  rng.text.length;
                }else if(typeof value === "number" ){
                    var index=this.position();
                    index>value?( rng.moveEnd("character",value-index)):(rng.moveStart("character",value-index))
                    rng.select();
                }
            }else{
                if( value === undefined ){
                    return elem.selectionStart;
                }else if(typeof value === "number" ){
                    elem.selectionEnd = value;
                    elem.selectionStart = value;
                }
            }
        }else{
            if( value === undefined)
                return undefined;
        }
    }
})


验证代码

 

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
      <title>测试</title>
   </head>
   <script language="JavaScript" type="text/javascript" src="jquery-1.3.1.min.js"></script>
   <script language="JavaScript" type="text/javascript" src="jquery-position.js"></script>
   <script language="JavaScript" type="text/javascript">
      $(document).ready(function(){
         $('input:eq(0)').click(function(){
            alert($(this).position());
         })
         $('input:eq(1)').click(function(){
            $(this).position(4);

         }) ;
         $('input:eq(1)').blur(function(){
            $(this).position(4);
            $(this).focus();
         })
      })
   </script>
   <body>
      <input type="text"  value="123456789"/>
      <input type="text"  value="123456789"/>
   </body>
</html>


 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值