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);    }}
    

原文地址:https://www.cnblogs.com/huachuan/p/9629080.html

时间: 2024-08-30 16:28:34

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

文本框字符数控制

//文本框字符数控制$('textarea').on('propertychange input', function(){ var $this = $(this); var len = $this.val().length; if(len > 300){ $this.val($this.val().substring(0, 300)); $this.parent().parent().find("em").html('0'); }else{ $this.parent().par

JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use &#39;in&#39; operator to search for

查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. [js] view plaincopy var json = [ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName&

关于javascript实时显示textarea剩余字符数

今天在百度的项目中碰到一个问题,就是实现javascript实时显示textarea剩余字符数的 功能,咋一看,这个功能也太简单了吧,一般都是只用keydown和keyup事件监听textarea的字符数就可以了,但是QA检测需要支持鼠标右键 的相关事件(包括粘贴,撤销,删除和剪切等),而且要求鼠标直接拖动文字至textarea中也要实时改变字数,由于这些方法没有直接按键盘,所以光 keydown和keyup事件监听是不够的. 此时就需要用onpropertychange事件了,该事件与onch

Jquery插件----TextArea高度自适应

textArea的高度自适应本来应该很简单的,只需要用js监听它的输入然后修改其高度即可,甚至对于ie只要用css(overflow:visible;)控制就可以了.但是同样会有兼容性问题,用一个jQuery插件来实现.代码如下: $.fn.extend({ textareaAutoHeight: function (options) { this._options = { minHeight: 0, maxHeight: 1000 } this.init = function () { for

jQuery实现textarea文本框带有半透明文本提示效果

jQuery实现textarea文本框带有半透明文本提示效果:textarea文本框一般用于编辑大段的文本,比如编辑器或者简单的留言回复之类的功能,有的在textarea文本框的有默认的提示语言,下面就介绍一下如何使用jQuery实现此功能.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content

textarea限制字符数

html代码: 1 <div class="remark_edit J_Remark_Edit"> 2 <div class="tip-body"> 3 <h4>备注信息:</h4> 4 <textarea cols="44">请输入备注信息</textarea> 5 </div> 6 <div class="tip-ctrl">

jquery 获取textarea文本值详解

今天用jquery获取textarea文本值,遇到这么一个问题: 一开始用val()方法报错,后面使用text(),可以运行,但是获取的值永远为空,最后在改成val(),可以正常使用. 于是乎:为了把这个问题弄清楚,开始了遥远的解读jQuery源码之旅 步骤: 1. 给textarea设置默认值,分别输出text()和value()值 2. 改变textarea的文本值,在分别输出text()和value()值 例子: 代码: 1 <!doctype html> 2 <html lang

jQuery 处理TextArea

jQuery 处理TextArea: $('#btn001').click(function(e) { console.log("btn001Click"); var cmt = $('#cmt'); if (!cmt.is(':animated')) { // 防止动画的累加,在正在动的时候不进行高度的增加: if (cmt.height() < 500) { console.log("cmt<500"); cmt.animate({ height :

2.3比较两个字符时控制大小写敏感性

知识点: 1..Equals 会默认完成区分大小写的比较. 使用Equals方法时,结合使用String类的ToUpper方法,就可以选择在比较串时是否考虑串的大小写.要对连个char变量完成区分大小写的比较,只需使用Equals方法,它会默认地完成区分大小写的比较.要完成一个不区分大小写的比较,需要在调用Equals方法之前先将两个字符转换为其相应的大写字符. 问题: 需要比较连个字符是否相等,但是需要有相应的灵活性,可以执行区分大小写的和不区分大小写的. 解决方案 1 using Syste