input type = number 可以输入字母e的问题
input type = number 时,e也是可以输入的
如果你希望在元素中输入时不出现字母e,而且不想使用事件监听器,那么你可以使用oninput属性和replace()方法来实现。代码示例如下:
<input type="number" id="myInput" oninput="this.value = this.value.replace(/e/gi, '')">
核心就是oninput事件及正则表达式 ,oninput配合正则 可以阻止输入框输入,效果上会比输入后替换好很多
input框 限制只允许输入数字
例子: 0-9表示能输入数字 / . 表示能输入小数点
<input type="text" value="" id="" onkeypress="return (/[0-9/.]/.test(String.fromCharCode(event.keyCode)))">
但是网上大部分的正则其实都是带有bug的,正则简单的限制不能防止恶意操作!中文输入法下,网上例举的正则 几乎毫无作用,因此为了数据安全,应该使用js判断,例如:
if (''==$('#inputMoney').val()){
alert("未输入金额!")
return;
}
// isNaN : 判断是否为数字格式(包含正负数),
// 例如需要输入负数的情况下 使用正则 很可能英文输入法状态下的 - 是不能输入的 而isNaN不需要考虑中英文输入法
if (isNaN($('#inputMoney').val())){
alert("请输入正确数字格式!")
return;
}
拓展:input隐藏边框
style=“border: none;outline: none;”