javascript 输入框监听事件
<div class="coupon-exchange clearfix">
<div class="code-input">
<input type="text" placeholder="请输入兑换码" class="input" id="couponExchangeInput"/>
<i class="icon-clear" id="couponExchangeClear"></i>
</div>
<div class="btn-exchange" id="couponExchangeBtn">兑换</div>
</div>
function couponExchange() {
//中文输入,输入完成后才触发事件
var flag = true;
$('#couponExchangeInput').on('compositionstart',function(){
flag = false;
});
$('#couponExchangeInput').on('compositionend',function(){
flag = true;
});
$('#couponExchangeInput').on('input', function(){
var _this = this;
setTimeout(function(){
if(flag){
var _val = $(_this).val();
$('#couponExchangeBtn').addClass('active');
$('#couponExchangeClear').css('display', 'block');
if(_val == ''){
$('#couponExchangeBtn').removeClass('active');
$('#couponExchangeClear').hide();
}
if(strlen(_val) > 100){
var _cutVal = cut_str(_val, 50);
$(_this).val(_cutVal);
}
}
},0);
});
$('#couponExchangeClear').click(function(){
$('#couponExchangeBtn').removeClass('active');
$('#couponExchangeClear').hide();
$('#couponExchangeInput').val('').focus();
});
$('#couponExchangeInput').blur(function(){
var _val = $(this).val();
if(strlen(_val) > 100){
var _cutVal = cut_str(_val, 50);
$(this).val(_cutVal);
}
});
$('#couponExchangeBtn').click(function(){
if($(this).hasClass('active')){
console.log(1);
}
});
}
//获取字符串的长度,一个中文占位两个字符长度
function strlen(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len++;
}
else {
len += 2;
}
}
return len;
}
//截取字符串的长度,一个中文占位两个字符长度
function cut_str(str, len){
var char_length = 0;
for (var i = 0; i < str.length; i++){
var son_str = str.charAt(i);
encodeURI(son_str).length > 2 ? char_length += 1 : char_length += 0.5;
if (char_length >= len){
var sub_len = char_length == len ? i+1 : i;
return str.substr(0, sub_len);
break;
}
}
}
javascript 输入框监听事件的更多相关文章
- javascript事件有哪些?javascript的监听事件
事件类型: 1.界面事件 onload:描述文档,图片,css已经frame,object加载完毕时触发,window.onload window.onload = function(){ //代表图 ...
- 在Javascript中监听flash事件(转)
在Javascript中监听flash事件,其实有两种做法: 1.在特定的环境下(例如专门制作的flash),大家约定一个全局函数,然后在flash的事件中用ExternalInterface.cal ...
- JAVAscript学习笔记 js句柄监听事件 第四节 (原创) 参考js使用表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 关于AngularJs中监听事件及脏循环的理解
可能很多刚入行或者刚学习的前端对于AngularJs中的一些事件或者概念感觉不理解或者没有思路,今天让我们一起来剖析一下AngularJs中的一些事件. AngularJs中对于的监听事件会用到一个s ...
- js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
页面级的键盘监听事件 document.onkeydown = function (event) { var e = event || window.event || arguments.callee ...
- Vue 为什么在 HTML 中监听事件?
为什么在 HTML 中监听事件? 你可能注意到这种事件监听的方式违背了关注点分离(separation of concern)传统理念.不必担心,因为所有的 Vue.js 事件处理方法和表达式都严格绑 ...
- js监听事件 上滑消失下滑出现的效果 触摸与手势事件
https://www.w3cmm.com/javascript/touch.html //触摸与手势事件连接tinyscrollbar //方法1var _this = $('#fabu');var ...
- js中的监听事件总结
javascript事件与功能说明大全:http://tools.jb51.net/table/javascript_event 1.滚动条监听事件 例1:监听滚动条距离页面顶端距离 <scri ...
- vue v-on监听事件
在html或jsp页面中我们总能碰到监听DOM事件来触发javaScript代码,下面我们就简单聊聊Vue.js中的监听事件是怎么处理的. 在vue.js中监听事件是通过v-on指令来实现的,先看一下 ...
随机推荐
- nuget push 程序包到nuget服务器时报错 406 (Not Acceptable)
1.在window服务器上部署nuget服务器时,发布包时出现请求报错 406 (Not Acceptable) 验证用户名.密码正确的情况下,还是出现上面错误.后面跟踪服务器日志,发现window\ ...
- windows Apache ab安装及压力测试
一:安装 ab是Apache自带的网站压力测试工具.使用起来非常的简单和方便.不仅仅是可以Apache服务器进行网站访问压力测试,还可以对其他类型的服务器进行压力测试.比如nginx,tomcat,I ...
- 当出现no changes added to commit时如何正确使用git提交命令
对于这个问题,最好的解决方法就是按如下步骤:1.到根目录下:git add . :("."是必须要的)2.git commit -m "some word"3 ...
- python使用内置方法和修饰器方法获取类名、函数名
1. 外部获取 从外部的情况好获取,可以使用指向函数的对象,然后用__name__属性. def a(): pass a.__name__ 或者 getattr(a,'__name__') 2. 内部 ...
- 自动化运维--ansible(1)
前戏 ansible 批量在远程主机上执行命令 openpyxl 操作excel表格 puppet ansible slatstack ansible epel源 第一步: 下载epel源 wget ...
- JS - 语音
语音识别 浏览器支持的还不是很好 语音播放 speechSynthesis.speak(new SpeechSynthesisUtterance('只要是活着的东西,神也杀给你看')); 参见 Web ...
- HTM基础之HTML标签
HTML(超文本标记语言) html代码实际上就是一套能够被浏览器所识别的规则代码,由一个个标签组成.html代码就是一大长串字符串,而这种字符串的格式正好能够被浏览器所识别,也就有了我们的WEB页面 ...
- WPF DevExpress Chart控件多Y轴,指定数据参考的Y轴
当Chart中有两个及以上的Y轴时,我们就要指明图表中的柱子或折线对应的是哪个Y轴了,这时候需要指明柱子或者折线的dxc:XYDiagram2D.SeriesAxisY属性,来设置对应的Y轴(dxc: ...
- Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public constructor Create(...); ov ...
- 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_04.mybatis概述