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

 

ExpandedBlockStart.gifView 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.gifView 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、付费专栏及课程。

余额充值