如题,在一个textbox中有如下文字
"JS如何从textbox中_间插入内容"按一个Button可以在textbox里插入 其他文字
如何可以控制文字插入在光标所在处?
比如说我按button插入文字 “测试”
如何让测试插入到红色的位置?
"JS如何从textbox中_间插入内容"按一个Button可以在textbox里插入 其他文字
如何可以控制文字插入在光标所在处?
比如说我按button插入文字 “测试”
如何让测试插入到红色的位置?
http://blog.csdn.net/greatverve/archive/2008/12/18/3546949.aspx
InputControl.InsertText = function(text,autoview)//autoview 是否自动滚动视图
{
this.focus();
var range = document.selection.createRange();
range.text = text;
autoview = autoview ==null ? false : true;
range.scrollIntoView(autoview);
}//如
InputControl.InsertText.call(yourcontrol,"我要替换",true)希望正和你意思...
相关还有许多操作
再跟几个//获取选中文本
InputControl.GetSelectedText = function()
{
this.focus();
return document.selection.createRange().text;
}
//选中目标文本的从startpos到endpos之间的字符串
//selectText.call(someTextObject,startpos,endpos)
InputControl.SelectText = function(startpos,endpos)
{
var range = this.createTextRange();
var length = this.value.length;
if(length < 1)
{
startpos = 0;
endpos = 0;
}
else
{
startpos = startpos < 1 ? 0 : startpos;
endpos = startpos > length ? 1- startpos : 1 - length + endpos;
}
range.moveStart('character',startpos);
range.moveEnd('character',endpos);
range.select();
return range.text;
}
//在目标文本中设置输入焦点
InputControl.SetFocusPos = function(pos)
{
var range =this.createTextRange();
range.move('character',pos);
range.select();
}
//输入文尾巴
InputControl.SetFocusEnd = function()
{
var range =this.createTextRange();
range.collapse(false);
range.select();
}
//输入文本开始
InputControl.SetFocusStart = function()
{
var range =this.createTextRange();
range.collapse(true);
range.select();
}
function InputValue(val,num)
{
var txt=document.getElementById("txtComment");
getPos(txt,true,val,num);
}
function BackSpace()
{
var txb=document.getElementById("txtComment");
getPos(txb,false,'',0);
}
//得到光标的位置并实现输入或删除
function getPos(txb,type,val,num)
{
txb.focus();
var slct = document.selection;
var rng = slct.createRange();
txb.select();
rng.setEndPoint("StartToStart", slct.createRange());
var psn = rng.text.length;
rng.collapse(false);
rng.select();
if(type)
{//输入
txb.value=txb.value.substr(0,psn)+val+txb.value.substr(psn,txb.value.length-psn);
setPos(txb,psn+num);
}
else
{//后退
txb.value=txb.value.substr(0,psn-1)+txb.value.substr(psn,txb.value.length-psn);
setPos(txb,psn-1);
}
}
//输入或删除完毕,光标相应移动
function setPos(e,num)
{
var r =e.createTextRange();
r.moveStart('character',num);
r.collapse(true);
r.select();
}
{
var txb = document.getElementById("TextBox1");//根据ID获得对象
var text = txb.value;
var pos = 0;//设置初始位置
txb.focus();//输入框获得焦点,这句也不能少,不然后面会出错,血的教训啦.
var s = txb.scrollTop;//获得滚动条的位置
var r = document.selection.createRange();//创建文档选择对象
var t = txb.createTextRange();//创建输入框文本对象
t.collapse(true);//将光标移到头
t.select();//显示光标,这个不能少,不然的话,光标没有移到头.当时我不知道,搞了十几分钟
var j = document.selection.createRange();//为新的光标位置创建文档选择对象
r.setEndPoint("StartToStart",j);//在以前的文档选择对象和新的对象之间创建对象,妈的,不好解释,我表达能力不算太好.有兴趣自己去看msdn的资料
var str =r.text;//获得对象的文本
var re = new RegExp("[\n]","g");//过滤掉换行符,不然你的文字会有问题,会比你的文字实际长度要长一些.搞死我了.我说我得到的数字怎么总比我的实际长度要长.
str = str.replace(re,"");//过滤
pos = str.length;//获得长度.也就是光标的位置
r.collapse(false);
r.select();//把光标恢复到以前的位置
txb.scrollTop = s;//把滚动条恢复到以前的位置 text=text.substring(0,pos)+tst+text.substring(pos,text.length);
document.getElementById("TextBox1").value=text;
} 网上找到滴测试能用大家分享