js 软键盘

本文分享了一种改进软键盘输入时光标位置漂移的方法,通过编写JavaScript函数实现精确控制光标位置,提升用户体验。具体包括获取当前光标位置、设置光标到指定位置的功能,并演示了在实际应用中如何调用这些函数来解决常见的输入问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上下的 软键盘 超级好用。就是文本框输入内容后,光标总是在最后。现在优化了一下。


[img]http://dl2.iteye.com/upload/attachment/0084/8313/be475a5c-d803-31dc-a93e-a9b8a87a084f.png[/img]


function getCursortPosition() {//获取光标位置函数
ctrl=ObjectId;
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus();
var Sel = document.selection.createRange();
Sel.moveStart('character', -ctrl.value.length);
CaretPos = Sel.text.length;
//alert(CaretPos+"==24");
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0'){
CaretPos = ctrl.selectionStart;
//alert(CaretPos+"==29");
}
//alert(CaretPos);
return CaretPos;
}

function setCaretPosition(ctrl, pos){//设置光标位置函数
if(ctrl.setSelectionRange)
{
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
function getdangqian(vstringt){

var caretPos=getCursortPosition();
var caretPosvalues=null;
var posfirst=null;
var posafter=null;
caretPosvalues= document.getElementById("T1").value;
posfirst=caretPosvalues.substring(0,caretPos);
posafter=caretPosvalues.substring(caretPos,caretPosvalues.length);
if(caretPos>0){
document.getElementById("T1").value=posfirst+vstringt+posafter;
}else{
document.getElementById("T1").value=vstringt+posafter;
}
setCaretPosition(document.getElementById("T1"),caretPos+1);
}
转 原文http://cnmqw.iteye.com/blog/1722147 下载修改的。
弹出层 效果的附件:alert_window.rar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值