javascript - 如何解决页面加载时的按键事件?
问题描述
用鼠标选择时,我无法编辑文本字段。
我尝试在 jquery 中使用 keypress 事件来限制小数点后两位小数。
$('.decimal').keypress(function (e) {
var character = String.fromCharCode(e.keyCode)
var newValue = this.value + character;
if (isNaN(newValue) || parseFloat(newValue) * 100 % 1 > 0) {
e.preventDefault();
return false;
}
});
在这里,当我用鼠标在薪水字段中选择文本时,我在加载时遇到问题我无法编辑该字段,但是在触发按键事件时它可以正常工作。
$(function () {
$('#name').bind('paste', function () {
var self = this;
setTimeout(function () {
if (!/^[a-zA-Z]+$/.test($(self).val())) $(self).val('');
}, 0);
});
$('#salary').bind('paste', function () {
var self = this;
setTimeout(function () {
if (!/^\d*(\.\d{1,2})+$/.test($(self).val())) $(self).val('');
}, 0);
});
/*$('.decimal').keyup(function () {
var val = $(this).val();
if (isNaN(val)) {
val = val.replace(/[^0-9]./{2,2}/g,'');
if(val.split('.').length>2)
val =val.replace(/\. + $ / , "");
}
$(this).val(val);
});*/
$('.decimal').keypress(function (e) {
var character = String.fromCharCode(e.keyCode)
var newValue = this.value + character;
if (isNaN(newValue) || parseFloat(newValue) * 100 % 1 > 0) {
e.preventDefault();
return false;
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<b>Name</b>
<input type="text" id="name" />
<br/>
<b>Salary</b>
<input type="text" id="salary" class="decimal" />
解决方案
推荐阅读
- r - 将 GPS 位置转换为经纬度小数
- html - Django:在模板中显示特定组级别的按钮
- python - 在 jupyter 实验室中使用 matplotlib 3d 绘制的错误图片
- elasticsearch - Elasticsearch -- 确定给定时间是否在 TIME 范围内
- apache-kafka - 管道损坏后如何修复代理可能不可用
- azure-devops - Azure Devops 发布管道 - 获取源(构建管道)值的变量?
- python - 使用列表选择器就地添加
- python - 列出所有可能的随机 3 个字符或 4 个字符
- python - 使用 pypdf2 读取 pdf 元数据
- react-native - React Native 0.60 中“react-native 弹出”的替代方法是什么来重新生成 iOS 和 android 文件夹?