怎么监测文本框中输入了指定字符“@”
微博中很常见的一个功能,求问实现原理,用什么监测的啊?还有,怎么怎么计算的出弹框(一般是好友姓名)的位置的?
[解决办法]
用onKeyup事件试试,希望对你有所帮助。
<!DOCTYPE><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript"> function checkSpar(text){ if(/@/.test(text.value)){ alert("不能包含@字符"); text.value = text.value.replace("@",""); } } </script></head><body> <input type="text" onKeyup="checkSpar(this);"></body></html>
[解决办法]
onkey类事件(DOWN,UP,PRESS)都可以得到当前按下的键值,与@的键值比较.
获得文本框中光标位置的通用代码:
<script>
function getTxt1CursorPosition(){
var oTxt1 = document.getElementById("txt1");
var cursurPosition=-1;
if(oTxt1.selectionStart){//非IE浏览器
cursurPosition= oTxt1.selectionStart;
}else{//IE
var range = document.selection.createRange();
range.moveStart("character",-oTxt1.value.length);
cursurPosition=range.text.length;
}
alert(cursurPosition);
}
</script>
<input type="text" id="txt1" value="abcde" onclick="getTxt1CursorPosition()">