我在我的代码中定义了以下元素。
<input type="number"
id="phone"
required
data-length="10"
defaultValue={this.state.formValues.phone}
onInput={(e) => {
e.target.value = Math.max(0, parseInt(e.target.value)).toString().slice(0, 10)
}}
/>
这里的问题是每当我按下'E,+, - '键时,数字字段中的完整值就会变清楚。所以我只想要一个解决方案来阻止这个字段取值'E,+, - ',并且当按下任何一个键时它也不应该清除该值。
答案 0 :(得分:0)
输入类型编号有点不同,它会让你输入不是数字的字符,但当你输入的值将为空时,一个解决方法是删除type =“number”并添加一个if用于检查解析的输入值是否不是数字的语句,如果用户在输入为空时输入一个字母,如果他在一个数字后面输入了一个字母,那么parseInt只会得到该数字直到该字母。
您可以在此处查看工作示例
document.getElementById("phone").oninput = function(e){
var inputValue = parseInt(e.target.value);
if (isNaN(inputValue)){
inputValue = 0;
}
e.target.value = Math.max(0, parseInt(inputValue)).toString().slice(0, 10)
};
<input id="phone"
required
data-length="10"
defaultValue={this.state.formValues.phone}
/>