在线求救,如何将光标放到输入框中指定的位置?

micker 2004-04-17 01:59:57
在线求救,如何将光标放到输入框中指定的位置?
如何在文本框中字符串中间输入字符时替换字符,而不是通常的插入??
...全文
199 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxid 2004-04-20
  • 打赏
  • 举报
回复
不过可以用其实方法,想想看,你自己也要想啊
maxid 2004-04-20
  • 打赏
  • 举报
回复
一般是不能的,JavaScript不能实现吧。
Xmercy 2004-04-18
  • 打赏
  • 举报
回复
<input value="2004-02-15" onkeyup="replace()">
<script>
function replace(){
with(event.srcElement){
var rng=document.selection.createRange()
select()
rng.setEndPoint("StartToStart",document.selection.createRange())
var pos=rng.text.length
var chr=value.charAt(pos-1)
rng.collapse()
rng.select()
value=value.replace(new RegExp("^(.{"+(pos-1)+"})("+chr+")(.)(.*)$"),/\d/.test(chr)?"$1$4$2":"$1$3$4")
}
}
</script>


自己再判断一下是否在最后输入的字符,对最后一个字符的删或留要简单的多,自己完成
micker 2004-04-18
  • 打赏
  • 举报
回复
Xmercy(我佛山人):
还是一样啊!不是替换,而是删除光标所在处字符而在字符串最后添加字符。
micker 2004-04-18
  • 打赏
  • 举报
回复
谢谢各位!不知有没有把光标放到输入框中指定的位置,例如输入框“2004-02-15”如何把光标移到第3个位置(“200”与“4”)之间的办法啊!
谢谢!
Xmercy 2004-04-17
  • 打赏
  • 举报
回复
<input value="2004-02-15" onkeyup="replace()">
<script>
function replace(){
with(event.srcElement){
var rng=document.selection.createRange()
select()
rng.setEndPoint("StartToStart",document.selection.createRange())
var pos=rng.text.length
rng.collapse()
rng.select()
value=/\d/.test(value.charAt(pos-1))?value.slice(0,pos)+value.slice(pos+1):value.slice(0,pos-1)+value.slice(pos)
}
}
</script>
maxid 2004-04-17
  • 打赏
  • 举报
回复
只要String.fromCharCode改好了就OK~
maxid 2004-04-17
  • 打赏
  • 举报
回复
<input type="text" name="show" value="2014-06-07" onkeydown='changeValue(this)'>
<script>
function GetCursorPos(oTextArea)
{
oTextArea.maxLength=11;
var s="~";
clipboardData.setData('text',s);
oTextArea.focus();
document.execCommand('paste');
var ret=oTextArea.value.indexOf(s);
document.execCommand('undo');
if(ret==-1) GetCursorPos(oTextArea)
oTextArea.maxLength=10;
return ret;
}
function changeValue(o)
{
var e = event.keyCode;
var chr = String.fromCharCode(e);
var v = o.value.substr(0,10);
var position = GetCursorPos(o);
var s = [];
var c="";
for(i=0; i<10; i++){
s[i] = v.substr(i,1);
if ((i)==position){
s[i] = chr;
}
c=c+s[i];
}
o.value = c;
}
</script>
有个bug,就是不能使用小键盘
maxid 2004-04-17
  • 打赏
  • 举报
回复
vbscript行不?
micker 2004-04-17
  • 打赏
  • 举报
回复
up
micker 2004-04-17
  • 打赏
  • 举报
回复
或者是知道如何将光标放到输入框中指定的位置,例如输入框“2004-02-15”如何把光标移到“200”与“4”(第3个位置)之间啊!
maxid 2004-04-17
  • 打赏
  • 举报
回复
哗,这样好玩啊,想想看
micker 2004-04-17
  • 打赏
  • 举报
回复
如果输入“2004-02-15”
当光标在“200”与“4”之间输入6时,则为“2006-02-15”,在js中如何实现?
gaofaq 2004-04-17
  • 打赏
  • 举报
回复
替换请按一下你键盘上的“Insert”键,在Back键的右边
聂niexiaolin 2004-04-17
  • 打赏
  • 举报
回复
.focus()应该可以
ccterran 2004-04-17
  • 打赏
  • 举报
回复
替换成什么?忽略是什么意思?是保留,还是删除。。。
micker 2004-04-17
  • 打赏
  • 举报
回复
在输入字符时判断输入的如果是数字,则替换,不是,则忽略。
求各位仁兄,仁妹帮忙。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧