js或jquery在textarea光标位置后面添加文本

js或jquery在textarea光标位置后面添加文本,第1张

$.fn.extend({    

05        position:function( value ){    

06            var elem = this[0]    

07                if (elem&&(elem.tagName=="TEXTAREA"||elem.type.toLowerCase()=="text")) {    

08                   if($.browser.msie){    

09                           var rng    

10                           if(elem.tagName == "TEXTAREA"){    

11                                rng = event.srcElement.createTextRange()    

12                                rng.moveToPoint(event.x,event.y)    

13                           }else{    

14                                rng = document.selection.createRange()    

15                           }    

16                           if( value === undefined ){    

17                             rng.moveStart("character",-event.srcElement.value.length)    

18                             return  rng.text.length    

19                           }else if(typeof value === "number" ){    

20                             var index=this.position()    

21                             index>value?( rng.moveEnd("character",value-index)):(rng.moveStart("character",value-index))    

22                             rng.select()    

23                           }    

24                    }else{    

25                        if( value === undefined ){    

26                             return elem.selectionStart    

27                           }else if(typeof value === "number" ){    

28                             elem.selectionEnd = value    

29                             elem.selectionStart = value    

30                           }    

31                    }    

32                }else{    

33                    if( value === undefined )    

34                       return undefined    

35                }    

36        }    

37    })

引用:http://www.oschina.net/code/snippet_4873_3395

可以使用jQuery来完成这个功能,示例如下:

HTML代码:

<textarea></textarea>

定义了一个空的textarea文本框。

jQuery代码:

$('textarea').val('这是测试内容')

页面运行结果:

如果原本textarea本来就存在值,想在原有值后面继续追加值:

var str = $('textarea').val() //先获取原有的值

$('textarea').val(str + ',这是后面追加的值') //拼接新值

运行结果:

方式方法多种多样,可以灵活使用。

jquery给textarea赋值的方法跟普通input一样。

举例说明,有如下代码

$("<div id='x1'><textarea id='t1'></textarea>" +

"<textarea id='t2'></textarea></div>").appendTo("body")

那么给id='t1'的textarea赋值的方法如下:

$("#t1").text("AAA")

$("#t2").val("BBB")

分别说明两种写法的区别:

1、在IE下,不管用val()或text()赋值,后续的读取都正常;

2、在Firefox下,使用val()指定的值,画面上会出现,但是用text()或是透过html()检视时却是字串。因此在Firefox中,如果希望设定给textarea值出现在html()中或可以被clone(),请用text(...)设定。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11525806.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存