浏览 9947 次
精华帖 (0) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-03
最后修改:2009-10-13
/** * @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; } } }) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <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); }) }) </script> <body> <input type="text" value="123456789"/> <input type="text" value="123456789"/> </body> </html> 全冠清 写道 $.fn.selectRange = function(start, end){ return this.each(function(){ if (this.setSelectionRange) { this.focus(); this.setSelectionRange(start, end); } else if (this.createTextRange) { var range = this.createTextRange(); range.collapse(true); range.moveEnd('character', end); range.moveStart('character', start); range.select(); } }); }; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-08-03
js 看不懂
|
|
返回顶楼 | |
发表时间:2009-08-03
$.fn.selectRange = function(start, end){ return this.each(function(){ if (this.setSelectionRange) { this.focus(); this.setSelectionRange(start, end); } else if (this.createTextRange) { var range = this.createTextRange(); range.collapse(true); range.moveEnd('character', end); range.moveStart('character', start); range.select(); } }); }; |
|
返回顶楼 | |
发表时间:2009-08-04
支持一个,不知道什么场景下会用到?
|
|
返回顶楼 | |
发表时间:2009-08-04
quaff 写道 支持一个,不知道什么场景下会用到?
对输入进行一些控制时,如输入金额小数点时判断插入位置是否合法 |
|
返回顶楼 | |
发表时间:2009-09-25
不知道浏览器兼容性方面如何
|
|
返回顶楼 | |
发表时间:2009-09-25
刚测试了一下 都可以用 不错的插件 谢谢
|
|
返回顶楼 | |
发表时间:2010-01-12
最后修改:2010-01-12
非常感谢楼主提供的插件,相当好用。 这次正好用在项目里了,由于项目一些特殊需求,进行了一点点小的改动:
/** * @author 全冠清 */ $.fn.extend({ position:function( pos, text ){ 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( pos === undefined ){ rng.moveStart("character",-event.srcElement.value.length); return rng.text.length; }else if(typeof pos === "number" ){ var index=this.position(); index>pos?( rng.moveEnd("character",pos-index)):(rng.moveStart("character",pos-index)) rng.select(); if( text === undefined ) { return pos; } } }else{ if( pos === undefined ){ return elem.selectionStart; }else if(typeof pos === "number" ){ elem.selectionEnd = pos; elem.selectionStart = pos; if( text === undefined ) { return pos; } } } if( text !== undefined ) { var len = elem.value.length; if(len<1 || pos<0) { pos = 0; } else if( pos>len ) { pos = len; } var text1 = elem.value.substr(0,pos); var text2 = elem.value.substr(pos); pos += text.length; elem.value = text1+text+text2; return this.position(pos); } }else{ var index = 0; if( typeof pos === "number") { index += pos; } return index; } } })
改动点: 1:返回结果都统一返回位置信息,如果浏览器不兼容,返回0; 2:增加一个参数,以便在指定位置插入字符串。 |
|
返回顶楼 | |