

//地市名称长度
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;
}
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代码


/**
* @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;
}
}
})
* @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;
}
}
})