FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 9955|回复: 4
打印 上一主题 下一主题

怎么样获取TextArea 光标所在位置

[复制链接]
跳转到指定楼层
楼主
发表于 2013-5-27 17:14:28 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
怎么样获取TextArea  光标所在位置 ,想用代码执行在光标位承认文本内容
(最好是.net 后台代码操作)
沙发
 楼主| 发表于 2013-5-28 14:52:41 | 显示全部楼层
sanshi 发表于 2013-5-27 17:55
获取光标位置这样的操作只能在前台实现了,网上搜下了,应该有现成的实现 ...
  1. <script type="text/javascript" defer="defer">
  2.     var nad = '<%=Text_DT_HTML.ClientID%>';
  3.     function onReady() {//添加事件

  4.         $('#' + nad).keydown(function (event) {
  5.             getCursorPosition(nad);
  6.         });
  7.         $('#' + nad).keyup(function (event) {
  8.             getCursorPosition(nad);
  9.         });
  10.         $('#' + nad).mousedown(function (event) {
  11.             getCursorPosition(nad);
  12.         });
  13.         $('#' + nad).mouseup(function (event) {
  14.             getCursorPosition(nad);
  15.         });
  16.         $('#' + nad).focus(function (event) {
  17.             getCursorPosition(nad);
  18.         });
  19.     }

  20.     function getCursorPosition(obj) {//获取光标位置
  21.         var evt = window.event ? window.event : getTa1CursorPosition.caller.arguments[0];
  22.         var oTa1 = document.getElementById(obj);
  23.         try {
  24.             if (oTa1.value == "")
  25.                 return 0;
  26.             var cursurPosition = -1;
  27.             if (oTa1.selectionStart) {//非IE浏览器
  28.                 cursurPosition = oTa1.selectionStart;
  29.             } else {//IE

  30.                 var rngSel = document.selection.createRange();//建立选择域
  31.                 var rngTxt = oTa1.createTextRange();//建立文本域
  32.                 var flag = rngSel.getBookmark();//用选择域建立书签
  33.                 rngTxt.collapse();//瓦解文本域到开始位,以便使标志位移动
  34.                 rngTxt.moveToBookmark(flag);//使文本域移动到书签位
  35.                 rngTxt.moveStart('character', -oTa1.value.length);//获得文本域左侧文本
  36.                 cursurPosition = rngTxt.text.replace(/\r\n/g, '').length;//替换回车换行符
  37.             }
  38.             //return cursurPosition;
  39.         }
  40.         catch (e) {
  41.             cursurPosition = oTa1.value.length;
  42.         }

  43.         document.getElementById("<%=TextBox_gb.ClientID%>").innerText = cursurPosition;
  44.     }


  45.     function setCaretPosition(pos) {//设置光标位置函数
  46.         var ctrl = nad;
  47.         if (ctrl.setSelectionRange) {
  48.             ctrl.focus();
  49.             ctrl.setSelectionRange(pos, pos);
  50.         }
  51.         else if (ctrl.createTextRange) {
  52.             var range = ctrl.createTextRange();
  53.             range.collapse(true);
  54.             range.moveEnd('character', pos);
  55.             range.moveStart('character', pos);
  56.             range.select();
  57.         }
  58.     }
  59. </script>
复制代码
js搞定....和框架兼容....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-1 08:20 , Processed in 0.049908 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表