java文本域内容监听_HTML文本框,文本域,监听文本的实时变化

概要:

今天要做一个文本域的实时校验,实时文本变化,字符长度不能超过512。搞得有点麻烦。文本域的change事件,keyup事件等等都不合适,最后参考别人用计时器完成的,用计时器

效率对于小文本,效率应该还是满高的。

文章顺序:

1.参考的资料

2.我的(部分)代码,供参考

1.参考的资料:

http://ilewen.com/questions/1118

这个问题我遇到过,开始使用的是监听keyup事件,但这样做有弊端,就是在用右键剪切调里面的内容时,因为没有键盘操作,所以无法触发keyup,同理 在粘贴时也存在该现象,于是在查找相关知识后,发现有一个oncut和onparste事件,这两个的确可以监听到鼠标的剪切,粘贴动作,可是无法得到剪 切后的值,也就是说他是在改变input内容之前触发的,得到的是未操作前的值,因此也不适用。最后通过一个定时器实现了该效果,需要利用 setInterval()函数。

jQuery代码:

$(document).ready(function(){

var oldword=$('#textinput').val();

var time=function(){

var keyword=$('#textinput').val();

if(oldword!=keyword){

alert("asb");//参考

oldword=keyword;

}

else{

//写你自己要实现的功能

}

}

var intervalnum=null;

$('#companysearch').focus(function(){

intervalnum=setInterval(time,100);

}).blur(function(){

clearInterval(intervalnum);

});

});

2.我的(部分)代码,供参考。代码写的不是很漂亮,望高手指点一二,谢谢。

function check() {

//根据判断这个flag ,你就能执行你的业务逻辑了。

var flag = false;

......

$('.l-dialog-textarea').after('

您还可以输入512个字

');var oldword = $('.l-dialog-textarea').val();

//定时器执行的程序var time =function () {var keyword = $('.l-dialog-textarea').val();if (keyword !=oldword){var size =keyword.length;var cha = 0;if(size > 512){

keyword= keyword.substr(0, 512);

$('.l-dialog-textarea').val(keyword);

$('#warning').html('您还可以输入 0 个字');

}else{

cha= 512 -size;

$('#warning').html('您还可以输入' + cha + '个字');

flag= true;

}

oldword=keyword;

}

}var interVal = null;

//当某某控件得到焦点时,启动定时器;下面一个是关闭定时器。

$('.l-dialog-textarea').focus(function(){

interVal= setInterval(time, 300);

});

$('.l-dialog-textarea').blur(function(){

clearInterval(interVal);

});

.....

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值