
本教程详细介绍了如何利用j*ascript的`intl.numberformat` api与jquery的事件处理机制,为网页中具有相同css类的多个输入框实现实时的货币格式化功能。通过监听用户输入事件,动态提取、验证并格式化数值,最终将符合本地货币习惯的格式化结果返回到用户正在操作的输入框中,从而提升用户体验并确保数据输入规范性。
在现代Web应用中,用户输入货币金额是一个常见场景。为了提升用户体验并确保数据格式的统一性,实时地将用户输入的数字格式化为货币形式显得尤为重要。本教程将引导您使用J*aScript的Intl.NumberFormat国际化API结合jQuery,实现对多个具有相同CSS类的输入框进行动态货币格式化,并确保格式化后的值返回到正确的输入框中。
首先,我们需要在页面中定义多个用于输入货币金额的输入框。为了方便通过J*aScript统一管理,这些输入框都将带有一个共同的CSS类,例如currency。
<input class="form-textbox number-only currency" type="text" id="nilai1" required/> <input class="form-textbox number-only currency" type="text" id="nilai2" required/> <input class="form-textbox number-only currency" type="text" id="nilai3" required/> <!-- 您可以根据需要添加更多输入框 -->
这里,currency类是我们的关键标识符,J*aScript将通过这个类来选择所有需要进行货币格式化的输入框。
J*aScript的Intl.NumberFormat对象是实现国际化数字格式化的强大工具。它可以根据指定的语言环境和格式选项,将数字格式化为货币、百分比等形式。我们将创建一个名为formatRupiah的函数,用于将数值格式化为印尼盾(IDR)的货币形式。
/**
* 将数值格式化为印尼盾货币形式。
* @param {number|string} nominal - 待格式化的数值。
* @returns {string} 格式化后的货币字符串。
*/
function formatRupiah(nominal){
return new Intl.NumberFormat('id-ID',
{ style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
).format(nominal);
}在这个函数中:
核心的实时格式化逻辑将通过jQuery的事件监听来实现。我们将监听所有带有currency类的输入框的keyup事件,这意味着每次用户按下并释放键盘按键时,都会触发我们的格式化逻辑。
SONIFY.io
设计和开发音频优先的产品和数据驱动的解决方案
75
查看详情
// 确保在DOM加载完成后执行
$(document).ready(function() {
// 监听所有带有'currency'类的输入框的keyup事件
$('.currency').keyup(function(){
// 'this' 关键字在此处引用了触发事件的特定输入框DOM元素
// 1. 获取输入框的当前值,并清理非数字字符,以便进行数值转换
// 正则表达式`/[^\d]/g`匹配所有非数字字符,并将其替换为空字符串
var numericValue = parseFloat(this.value.replace(/[^\d]/g, ''));
// 2. 验证清理后的值是否是一个有效的数字
if (!isNaN(numericValue)) {
// 3. 如果是有效数字,则使用之前定义的formatRupiah函数进行格式化
var formattedValue = formatRupiah(numericValue);
// 4. 将格式化后的值重新设置回当前输入框
$(this).val(formattedValue);
} else {
// 5. 如果清理后的值不是有效数字(例如用户输入了纯文本),则清空输入框
$(this).val('');
}
});
});关键点解析:
为了使上述代码能够正常工作,请确保在HTML文件中引入了jQuery库。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>实时货币格式化输入框</title>
<!-- 引入jQuery库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<style>
body { font-family: Arial, sans-serif; padding: 20px; }
input { margin-bottom: 10px; padding: 8px; border: 1px solid #ccc; border-radius: 4px; width: 200px; }
</style>
</head>
<body>
<h1>实时货币金额输入</h1>
<label for="nilai1">金额 1:</label><br>
<input class="form-textbox number-only currency" type="text" id="nilai1" required/><br>
<label for="nilai2">金额 2:</label><br>
<input class="form-textbox number-only currency" type="text" id="nilai2" required/><br>
<label for="nilai3">金额 3:</label><br>
<input class="form-textbox number-only currency" type="text" id="nilai3" required/><br>
<script>
/**
* 将数值格式化为印尼盾货币形式。
* @param {number|string} nominal - 待格式化的数值。
* @returns {string} 格式化后的货币字符串。
*/
function formatRupiah(nominal){
return new Intl.NumberFormat('id-ID',
{ style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
).format(nominal);
}
// 确保在DOM加载完成后执行
$(document).ready(function() {
// 监听所有带有'currency'类的输入框的keyup事件
$('.currency').keyup(function(){
// 获取输入框的当前值,并清理非数字字符
var numericValue = parseFloat(this.value.replace(/[^\d]/g, ''));
// 验证清理后的值是否是一个有效的数字
if (!isNaN(numericValue)) {
// 如果是有效数字,则进行格式化并更新输入框
var formattedValue = formatRupiah(numericValue);
$(this).val(formattedValue);
} else {
// 如果不是有效数字,则清空输入框
$(this).val('');
}
});
});
</script>
</body>
</html>将上述代码保存为HTML文件并在浏览器中打开。当您在任何一个输入框中输入数字时,它将立即被格式化为印尼盾的货币形式。
通过结合J*aScript的Intl.NumberFormat API和jQuery的事件处理能力,我们成功地为多个输入框实现了实时、动态的货币格式化功能。这种方法不仅提升了用户界面的交互性和友好性,也确保了数据输入的规范性和一致性。理解this关键字在事件处理中的作用是解决多元素交互问题的关键。在实际应用中,您可以根据具体需求对格式化逻辑和用户体验进行进一步的优化。
以上就是J*aScript与jQuery实现多输入框实时货币格式化教程的详细内容,更多请关注其它相关文章!
# 是一个
# 精准营销及推广方案设计
# 东莞网站建设源代码
# 外贸推广文章发布类网站
# 道滘整合营销推广
# seo怎样查询
# seo 优化慢
# 南庄网站优化平台
# 办画展推广营销方案策划
# 万科新媒体营销推广
# 小红书店铺营销推广方法
# 选择器
# 或其他
# 这是
# 您可以
# css
# 多个
# 印尼
# 输入框
# 后端
# 工具
# 浏览器
# 正则表达式
# ajax
# git
# js
# html
# jquery
# java
# javascript
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
Excel如何设置动态下拉菜单_Excel表格下拉选项快速方法
圆通快递官网入口查询单号 手机版官方查询入口
《淘宝联盟》推广自己的店铺方法
小红书网页版在线直达 小红书网页版免费登录入口
Win10输入法不见了怎么办 Win10找回语言栏图标教程
《全民k歌》音乐怎么下载到本地2025
为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践
视频号视频怎么提取文案?提取的文案如何优化与使用?
mysql中外键约束如何使用_mysql FOREIGN KEY操作
如何通过settings.json个性化您的VS Code体验
原子笔记app误删找回教程
CSS动画如何实现图标旋转并放大_transform rotate scale @keyframes实现
斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来
一点万象签到领积分指南
《咸鱼之王》新版孙坚技能解析
百度地图离线地图无法加载如何解决 百度地图离线地图加载优化方法
苹果电脑如何快速截图并编辑 苹果电脑截屏标注快捷操作
Retrofit根路径POST请求:@POST("/") 的应用与解析
Golang如何测试结构体方法_Golang reflect方法测试与调用技巧
mysql如何管理数据库账户_mysql数据库账户管理技巧
《画加》约稿流程
知乎APP怎么查看自己被邀请的问题_知乎APP邀请回答记录查看与参与方法
晓晓优选app支付宝绑定方法
虫虫漫画绿色安全入口_虫虫漫画绿色安全入口安全看漫画
5G和6G的连接密度有什么区别 6G每平方公里能连接多少设备
Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改
Leaflet地图弹出窗口图片动态显示:避免缺失图标的专业指南
苹果SE如何开启单手模式_苹果SE单手操作功能
电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】
顺丰官方查单号入口 顺丰快递单号查询官网入口
大熊猫抓取竹子的“大拇指”其实是什么?蚂蚁庄园课堂今天答案最新11月30日
荣耀Magic7拍照夜景噪点处理_荣耀Magic7相机优化
猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程
12306不能订票的时间段是固定的吗? | 节假日购票时间有无变化
花生壳内网映射新方案
虫虫漫画排行榜单入口_虫虫漫画编辑推荐入口
WooCommerce 购物车:始终显示所有交叉销售商品
冬季去寒冷地区旅游,以下哪种做法有助于缓解冻伤
Django模型动态关联检查:高效管理复杂关系
济南公交卡手机充值指南
composer licenses 命令:如何检查项目依赖的许可证?
Google Cloud Functions 时区处理指南:理解与最佳实践
键盘声音异常怎么回事_键盘异响怎么处理
如何在Podman容器中运行Composer_Docker替代品Podman的PHP与Composer容器化实践
Scipy Sparse CSR 矩阵非零元素行级遍历的最佳实践
手机远程连接电脑方法
口腔诊所管理软件推荐
PHP与SQL实践:高效实现数据复制与特定列值修改
Golang如何初始化module项目_Golang module init使用说明
iSpring三分屏制作教程
2025-10-20
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。