教你用JavaScript实现实时字符计数器
案例介绍
欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!
我们来用JavaScript编程实战案例,做一个实时字符计数器。用户在指定位置打字,程序实时显示字符数量。
案例演示
在编辑框内输入字符,下方实时记录数字,且输入有数量限制,输入超出限制的字符后就无法再继续输入。
源码学习
进入核心代码学习,我们先来看HTML中的核心代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>小院里的霍大侠</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<!-- 有个小院-兴趣编程 -->
<div class="container">
<h2>有个小院-实时字符计数器</h2>
<textarea
id="textarea"
class="textarea"
placeholder="请在这里输入"
maxlength="50"
></textarea>
<div class="counter-container">
<p>
字符数:
<span class="total-counter" id="total-counter"></span>
</p>
<p>
字符总数:
<span class="remaining-counter" id="remaining-counter"></span>
</p>
</div>
</div>
<script src="index.js"></script>
</body>
</html>
然后再让我们来看CSS代码,由于CSS代码不是重点且数量较多在这里就不做过多介绍。
body {
margin: 0;
display: flex;
justify-content: center;
height: 100vh;
align-items: center;
background-color: salmon;
font-family: cursive;
}
.container {
background-color: lightpink;
width: 400px;
padding: 20px;
margin: 5px;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
.textarea {
resize: none;
width: 100%;
height: 100px;
font-size: 18px;
font-family: sans-serif;
padding: 10px;
box-sizing: border-box;
border: solid 2px darkgray;
}
.counter-container {
display: flex;
justify-content: space-between;
padding: 0 5px;
}
.counter-container p {
font-size: 18px;
color: gray;
}
.total-counter {
color: slateblue;
}
.remaining-counter {
color: orangered;
}
让我们来编写核心的JavaScript代码,通过getElementById绑定HTML元素;编写键盘事件,当用户敲击键盘输入字符,则更新字符数量;编写更新字符数量函数,设置字符数为文本框的输入字符长度,设置字符总数为文本框最大长度-字符数。
//有个小院-兴趣编程
const textareaEl = document.getElementById("textarea");
const totalCounterEl = document.getElementById("total-counter");
const remainingCounterEl = document.getElementById("remaining-counter");
textareaEl.addEventListener("keyup", () => {
updateCounter();
});
updateCounter()
function updateCounter() {
totalCounterEl.innerText = textareaEl.value.length;
remainingCounterEl.innerText =
textareaEl.getAttribute("maxLength") - textareaEl.value.length;
}
记得关注我,每天学习一点点
你觉得这个案例还能应用到什么地方?
全网可搜:小院里的霍大侠, 免费获取简单易懂的实战编程案例。编程/就业/副业/创业/资源。
私微信:huodaxia_xfeater
二维码: http://www.yougexiaoyuan.com/images/weixin_huodaxia.jpg
公众号:有个小院(微信公众号:yougexiaoyuan)
github:yougexiaoyuan (视频源码免费获取)
(部分素材来源于互联网,如有保护请联系作者)
教你用JavaScript实现实时字符计数器的更多相关文章
- 5分钟教你学会JavaScript正则表达式
正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模 ...
- 正则表达式: javascript Unicode 中文字符 编码区间:\u4e00-\u9fa5
正则表达式: javascript Unicode 中文字符 编码区间:\u4e00-\u9fa5 RegExp 对象 javascript Unicode 中文字符的 编码区间: \u4e00-\ ...
- 教你用JavaScript实现计数器
案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个计数器.点击按钮数字改变,点击重置数字归0.通过实战我们将学会forEach循环.c ...
- JavaScript对HTML字符转义与反转义(转码和解码)
HTML的Encode(转码)和解码(Decode)在平时的开发中也是经常要处理的,在这里总结了使用javascript处理HTML的Encode(转码)和解码(Decode)的常用方式 一.用浏览器 ...
- javascript检索某个字符或字符串在源字符串中的位置(下标)
indexOf()方法 JavaScript中的String对象提供了一个indexOf(searchValue, fromIndex)方法用于检索某个字符或字符串在源字符串中第一次出现的位置(下标) ...
- JavaScript - 过滤敏感字符
目录 before 源码示例 before 本篇博客展示了如何是在前端对铭感字符及一些特殊的命令做过滤. 好处是,少发一次请求,减少服器校验压力. 源码示例 <!DOCTYPE html> ...
- JavaScript replace() 方法+字符子集介绍(*)
重点两部分知识点 1.javascript replace()函数用法 以下replace用法转载自w3cSchool:http://www.w3school.com.cn/jsref/jsref_r ...
- JavaScript零宽字符
什么是零宽字符 一种不可打印的Unicode字符, 在浏览器等环境不可见, 但是真是存在, 获取字符串长度时也会占位置, 表示某一种控制功能的字符. 常见的零宽字符有哪些 零宽空格(zero-widt ...
- 一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起
上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本 ...
- 一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式
前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...
随机推荐
- 通义千问预体验,如何让 AI 模型应用“奔跑”在函数计算上?
立即体验基于函数计算部署通义千问预体验: https://developer.aliyun.com/topic/aigc_fc AIGC 浪潮已来,从文字生成到图片生成,AIGC 的创造力让人惊叹,更 ...
- the server responded with a status of 413 (Request Entity Too Large) 解决
前端上传文件,本地测试好的,放到服务器上出现了这个错误:the server responded with a status of 413 (Request Entity Too Large) 问题原 ...
- mysql8.0环境搭建linux
本文主要介绍如何在linux环境(64位)下搭建mysql8.0的数据库环境 1.到指定目录下下载安装包 [root@minio3 ~]# cd /usr/local/src [root@minio3 ...
- Node版本升级和降级
https://blog.csdn.net/qq_29262849/article/details/52973095
- MCU芯片设计流程
MCU设计流程 1.产品开发整体流程 Integrated Product Development(IPD) TR-Technique Review-技术评审 xDCP-管理层决定是否开发 这里的验证 ...
- [转帖]TLS/SSL (Schannel SSP) 中的密码套件
https://learn.microsoft.com/zh-cn/windows/win32/secauthn/cipher-suites-in-schannel 密码套件是一组加密算法. TLS/ ...
- 汉字在unicode的编码情况-From http://yedict.com/zsts.htm
字符集内容 字数 unicode编码 字符显示说明(除非安装更大字库) 基本区 分页: 一 二 三 四 共20902字 4E00-9FA5 电脑和手机都能显示 基本区补充 共90字 9FA6-9F ...
- SQLServer 执行计划的简单学习和与类型转换的影响
SQLServer 执行计划的简单学习和与类型转换的影响 背景 最近一直在看SQLServer数据库 索引.存储.还有profiler的使用 并且用到了 deadlock graph 但是感觉还是不太 ...
- [转帖]Nginx惊群效应引起的系统高负载
https://zhuanlan.zhihu.com/p/401910162 原创:蒋院波 导语:本文从进程状态,进程启动方式,网络io多路复用纬度等方面知识,分享解决系统高负载低利用率的案例 前言: ...
- [转帖]VMware-ovftool命令行部署与导出镜像
ESXI6.0之后管理为WEB,OVF导出/部署是个渣渣,如果虚拟机文件过大,一般会报网络异常中断而失败,可使用官方ovftool工具解决,快而方便,支持linux和Mac OSX,可脚本操作,批量处 ...