输入字段应允许数字和小数而不是减号
<input type="number" pattern="[^[0-9]([.,][0-9]{1,3})?$]*">
答案 0 :(得分:1)
好的,我得到了你的问题。请查看"Allowing decimal values"部分。为了使输入字段type="number"
能够处理小数,您需要更改步骤属性。
这是否按预期工作?
First try:
<input type="number" pattern="\d+[.,]?\d+" step="0.001">
Second Try:
<input type="text" pattern="\d+|\d+[.,]\d{1,3}">
&#13;
我建议你摆脱type=number
属性。您已经为输入设置了pattern
属性,除非您确实要将滚动保持为正或负一步,我设置type="text"
。
答案 1 :(得分:0)
试试这个:
<input type="number" pattern="/^[0-9.,]+$/">
答案 2 :(得分:0)
您正在寻找可读且易于理解的代码,然后这对您来说非常有用:
function checkDecimalDot(e)
{
var charCode = (e.which) ? e.which : e.keyCode;
if (charCode != 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
}
&#13;
<input type="number" onkeypress="return checkDecimalDot(event)" >
&#13;
答案 3 :(得分:0)
这个简单的代码允许您只添加没有任何负值的小数和数字。
<input type="number" min="0" step="0.001">
答案 4 :(得分:0)
已经完成了!使用以下代码
@HostListener('keypress') onkeypress(e) {
let event = e || window.event;
let charCode = (event.which) ? event.which : event.keyCode;
let value : any = this.elementRef.nativeElement.value.replace(/[^0-9\.]/g, '');
if ((event.which != 46 || value.indexOf('.') != -1)
&& (event.which < 48 || event.which > 57)) {
event.preventDefault();
}
}