jquery通过textarea的字符位置控制光标位置,通过输入月份位置,跳转到输入日的位置,输入日后跳转至末尾

Posted huachuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery通过textarea的字符位置控制光标位置,通过输入月份位置,跳转到输入日的位置,输入日后跳转至末尾相关的知识,希望对你有一定的参考价值。

$(item).on("click", function () {
  var inputStr = ‘‘;
  var startPosition = 0;
  var strYear = new Date().getFullYear();
  if ($(item).hasClass(‘read-option‘)) {
  inputStr = strYear + ‘年 月 日圈阅。‘;
  } else if ($(item).hasClass(‘approval-option‘)) {
  inputStr = strYear + ‘年 月 日批示:‘;
  } else if ($(item).hasClass(‘over-option‘)) {
  inputStr = ‘已于‘ + strYear + ‘年 月 日将领导批示复印件送‘;
  } else if ($(item).hasClass(‘clear-option‘)) {
  inputStr = ‘‘;
  }
  startPosition = inputStr.indexOf(‘月‘) != -1 ? inputStr.indexOf(‘月‘) : 0; // 得到当前月的位置
  var dayPosition = inputStr.indexOf(‘日‘) != -1 ? inputStr.indexOf(‘日‘) : 0; // 得到当前日的位置
  $text_content.val(inputStr);
  moveTextPosition($text_content[0], startPosition);

});

// 当值改变时
$(‘#opinionContent‘).on(‘keyup‘, function () {
  var val = $(this).val();
  var monthPosition = val.indexOf(‘月‘) != -1 ? val.indexOf(‘月‘) : 0; // 得到当前月的位置
  var dayPosition = val.indexOf(‘日‘) != -1 ? val.indexOf(‘日‘) : 0; // 得到当前日的位置

  var month2 = $.trim(val.substring(monthPosition - 3, monthPosition));
  var day2 = $.trim(val.substring(dayPosition - 3, dayPosition));
  var month2ParseInt = parseInt(month2);
  var day2ParseInt = parseInt(day2);

  if (month2ParseInt <= 12 && month2ParseInt > 0 && month2.length === 2 && isNaN(day2ParseInt)) {
    moveTextPosition($text_content[0], dayPosition);
  }
  if (parseInt(day2) <= 31 && parseInt(day2) > 0 && day2.length === 2 && !isNaN(day2ParseInt)) {
    var count = val.length / 1024;
    var textLen = parseInt(Math.round(count * Math.pow(10, 4)));
    moveTextPosition($text_content[0], textLen);
  }
});
// 光标的位置
function moveTextPosition(obj, startPosition) {
obj.focus();
if (document.selection) {
var sel = obj.createTextRange();
sel.moveStart(‘character‘, startPosition);
sel.collapse(true);
sel.select();
} else if (obj.setSelectionRange) {
//obj.selectionStart = obj.selectionEnd = startPosition;
obj.setSelectionRange(startPosition, startPosition);
}
}



















































以上是关于jquery通过textarea的字符位置控制光标位置,通过输入月份位置,跳转到输入日的位置,输入日后跳转至末尾的主要内容,如果未能解决你的问题,请参考以下文章

jQuery textarea - 插入模式光标位置

使用 jQuery(兼容 IE6)在 textareas 中捕获“光标位置更改”事件

jQuery获取textarea光标/插入符号X,Y位置并在下面显示一个DIV

获取textarea文本框所选字符光标位置索引,以及选中的文本值;textarea高度自适应,随着内容增加高度增加;获取输入框中的光标位置

input或textarea中关于光标移动问题

为啥 jquery.animate 在 textarea 上使闪烁的光标消失?