javascript - JQuery有条件地设置嵌套输入元素的格式化文本
问题描述
我从带有 ASP.Net MVC 的 JQuery 开始,并努力实现以下要求:
对于包含在具有特定(myId)的元素中的所有input
元素,我需要编写一个函数,当焦点被移除/表单被保存并设置时,该函数将格式化该特定文本框中包含的数字(逗号分隔并使用小数) . 目前,它仅在重新加载页面时正确反映。type = text
td
id
到目前为止,我已经设法写了:
$(document).ready(function () {
$('tr td[id*=myId] input[type=text]').on("focusout", function (element) {
console.log(this);
//$(element).fval($.myFormat.format(element.value));
});
});
wheremyFormat.js
是一个 JavaScript 文件,其中包含一个调用format()
来格式化值的方法(逗号分隔并使用小数)。例如:$.myFormat.format(232038232233)
给"232,038,232,233.00"
注意:注释掉的行会引发错误。
任何帮助都是有益的。
更新 我尝试了以下内容:
$(document).ready(function () {
$('tr td[id*=myId] input[type=text]').on("focusout", function (element) {
console.log(this);
$(this).val($.myFormat.format(this.value));;
});
});
我给出437427244
了输入值,但不幸的是,输出仍未格式化(事实上,当我查看控制台的值时,我可以看到旧值(我更改之前的值)仍在显示。
<input class="DataOriginUserInput numeric" data-formatinfo="n2"
data-formattype="1" dataorigvalue="578,575,979,700.00"
data-val="true" id="myId_11" name="..."
type="text" value="578,575,979,700.00">
解决方案
我不知道$.myFormat
插件是从哪里来的,所以只是将数千个格式化程序放在一起并针对类
function numberWithCommas(x) {
return x.toString().replaceAll(',','').replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
$('input.DataOriginUserInput.numeric').on("focusout", function (event) {
$(this).val(numberWithCommas(this.value))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td> <input class="DataOriginUserInput numeric" data-formatinfo="n2"
data-formattype="1" dataorigvalue="578,575,979,700.00"
data-val="true" id="myId_11" name="..."
type="text" value="578,575,979,700.00"></td>
</tr>
<tr>
<td><input class="DataOriginUserInput numeric" type="text" id="myId2" value="13456899999"></td>
</tr>
<tr>
<td><input class="DataOriginUserInput numeric" type="text" id="myId3" value="444444444444444.99"></td>
</tr>
</table>
推荐阅读
- r - 使用蒙特卡罗下的拒绝方法来解决R中的一个整数
- azure - Azure devops 服务连接已过期,无法编辑/续订
- python - 按索引搜索数据框并导出信息
- r - 在 CPL_geos_binop(st_geometry(x), st_geometry(y), op, par, pattern 中使用 st_intersects 时出错:评估错误:IllegalArgumentException
- java - 如何仅更改 LinkedList 中的一个值
- wpf - Avalon 在 Highlighting 中编辑 Highlighting
- zalenium - 同一个 Zalenium 实例中的不同浏览器版本
- microsoft-graph-api - 如何使用 Microsoft graph 在一定时间内获取用户状态
- node.js - Express GET:使用 Spawn 运行 Python,使用 fs 读取文件并发送响应会产生延迟的结果
- laravel - Laravel 在没有 foreach 的情况下获取集合的 id