JS控制对input控件里的值的操作

 

ExpandedBlockStart.gif View Code
  // 地市名称长度 
         var  length = 3 ;
        
        $(document).ready(
function (){
    
        $(
" #abc " ).keydown( function (obj){
            
            
var  blResult = true  ;
           
           
// 光标在文本框中的位置
             var  position = $( this ).position();

            
if (position < length)
            {
                
if (obj.keyCode == 39   ||  obj.keyCode == 37 )
                {
                    
// 左右键可用
                    blResult = true  ;
                }
                
else
                {
                    
// 小于指定位值,不能进行任何操作
                    blResult = false  ;
                }
            }
            
else   if (position == length)
            {
                
if (obj.keyCode == 8   )
                {
                    
// 屏蔽回格键
                    blResult = false  ;
                }
                
else   if (obj.keyCode == 46 )
                {
                    
if (CheckIsSelPrefix())
                    {
                        
// 选中不能删除(即回格键和delete键失效) ,任何操作都失效
                        blResult = false  ;
                    }
                    
else
                    {
                        blResult
= true  ;
                    }
                }
                
else
                {
                    
if (CheckIsSelPrefix())
                    {
                        
// 选中不能删除(即回格键和delete键失效) ,任何操作都失效
                        blResult = false  ;
                    }
                    
else
                    {
                        blResult
= true  ;
                    }
                }
            }
            
else   if (position > length)
            {
                
if (CheckIsSelPrefix())
                {
                    
// 选中不能删除(即回格键和delete键失效)
                    blResult = false ;
                }
                
else
                {
                    blResult
= true  ;
                }
            }
            
return  blResult ;
        }); 
        
        
// 禁用右键操作
        $( " #abc " ).bind( " contextmenu " function () { 
             
var  blResult = true  ;
             
             
if (CheckIsSelPrefix())
             {
                
// 选中了前缀,不能点击右键
                blResult = false  ;
             }
             
else
             {
                
// 没有选中,可以点击右键
                blResult =   true  ;
             }
             
return  blResult;
        });

        
// 过滤输入字符(用jquery过滤插件)
        $( ' #abc ' ).keyfilter( function (c) {
        
            
var  blResult = true   ;
        
            
// 光标在文本框中的位置
             var  position = $( this ).position();
            
            
if (position < length)
            {
                
// 在地市名称中间不能输入任何字符
                blResult =   false  ;
            }
            
else
            {
                blResult
=   true  ;
            }
            
            
return  blResult ;
          });
        })
        
// 是否选择前缀
         function  CheckIsSelPrefix()
        {
            
var   blResult = false  ;
          
             
// 选择的字符串
             var  strSel = getRangeById( " abc " );
   
            
if (strSel.length > 0 )
            {
                
// 取得文本框里的内容
                 var  txtContent = $( " #abc " ).val();
                
                
var  s  =  txtContent.indexOf(strSel);  
                
                
if (s < length)
                {
                    
// 选中
                    blResult = true  ;
                }
                
else
                {
                    
// 没有选中
                    blResult = false  ;
                }
            }
            
else
            {
                
// 没有选中
                blResult = false  ;
            }
            
            
return  blResult;
        }
        
// 选择的字符串
         function  getRangeById(id) 
        { 
            
var  word = ''
            
if  (document.selection)
            {
                o
= document.selection.createRange();
                
if (o.text.length > 0 )
                word
= o.text;
            }
            
else
                    o
= document.getElementById(id);
                     p1
= o.selectionStart;
                     p2
= o.selectionEnd; 
                    
if  (p1 || p1 == ' 0 ' )
                    {
                        
if (p1 != p2)
                            word
= o.value.substring(p1,p2);
                     }
                 } 
            
return  word; 
        } 

取得光标所有文本控件里位置的jquery代码

 

ExpandedBlockStart.gif View Code
/* *
 * @author 
 
*/
$.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;
            }
    }
})

 

转载于:https://www.cnblogs.com/S-TGM/archive/2011/08/22/2148961.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值