Javascript 尝试擦除时删除输入中的零
我有一个react组件,它是类型编号的输入字段。当我按下随机数时,一切正常,但当我想擦除一切时,输入字段中总是有一个零,我无法擦除。是否可以清空输入字段,以便在我擦除所有内容时零消失 我的组成部分:Javascript 尝试擦除时删除输入中的零,javascript,html,input,reactjs,Javascript,Html,Input,Reactjs,我有一个react组件,它是类型编号的输入字段。当我按下随机数时,一切正常,但当我想擦除一切时,输入字段中总是有一个零,我无法擦除。是否可以清空输入字段,以便在我擦除所有内容时零消失 我的组成部分: const NumberBox = (props) => { const onChanged = (event) => { props.onChange(+event.target.value); }; const styles = { inputGener
const NumberBox = (props) => {
const onChanged = (event) => {
props.onChange(+event.target.value);
};
const styles = {
inputGeneral: {
border: '0px',
width: '100%',
padding: '8px 16px',
fontSize: '1.6em' } };
return (
<input
style={styles.inputGeneral}
type="number"
pattern="[0-9]*"
value={props.value}
onChange={onChanged}
/>);
};
constnumberbox=(道具)=>{
const onChanged=(事件)=>{
道具改变(+事件目标值);
};
常量样式={
输入概述:{
边框:“0px”,
宽度:“100%”,
填充:“8px 16px”,
fontSize:'1.6em'}};
返回(
);
};
之所以会发生这种情况,是因为Chromium(可能还有其他浏览器)中的HTML5数字输入类型相关的行为
最简单的解决方案应该是使用文本
输入类型并手动验证/格式化您的输入
另请参见此…之所以发生这种情况,是因为Chromium(可能还有其他浏览器)中与HTML5数字输入类型相关的行为 最简单的解决方案应该是使用
文本
输入类型并手动验证/格式化您的输入
另请参见此…第一次显示输入字段时,此操作正常,但如果我键入任何数字并尝试将其删除,则输入字段中的值将设置回0。有人会认为该值只是一个空字符串或其他东西,但不是。。为什么你会期望一个空字符串,它是一个数字输入。@HenrikAndersson如果我删除输入字段中的所有内容,我就不会期望数字0。我希望输入字段为空。可能不是空字符串,但仍然是空的。记住这是一个数字类型的字段:哪个数字是“空字段”?我会说“0”。。。这就是为什么在空数字输入字段中看到“0”。。。这可能是一个惯例问题,但我觉得它很合理…:-)这在第一次显示输入字段时效果很好,但是如果我键入任何数字并尝试将其删除,则输入字段中的值将设置回0。有人会认为该值只是一个空字符串或其他东西,但不是。。为什么你会期望一个空字符串,它是一个数字输入。@HenrikAndersson如果我删除输入字段中的所有内容,我就不会期望数字0。我希望输入字段为空。可能不是空字符串,但仍然是空的。记住这是一个数字类型的字段:哪个数字是“空字段”?我会说“0”。。。这就是为什么在空数字输入字段中看到“0”。。。这可能是一个惯例问题,但我觉得它很合理…:-)