Javascript 尝试擦除时删除输入中的零

Javascript 尝试擦除时删除输入中的零,javascript,html,input,reactjs,Javascript,Html,Input,Reactjs,我有一个react组件,它是类型编号的输入字段。当我按下随机数时,一切正常,但当我想擦除一切时,输入字段中总是有一个零,我无法擦除。是否可以清空输入字段,以便在我擦除所有内容时零消失 我的组成部分: const NumberBox = (props) => { const onChanged = (event) => { props.onChange(+event.target.value); }; const styles = { inputGener

我有一个react组件,它是类型编号的输入字段。当我按下随机数时,一切正常,但当我想擦除一切时,输入字段中总是有一个零,我无法擦除。是否可以清空输入字段,以便在我擦除所有内容时零消失

我的组成部分:

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”。。。这可能是一个惯例问题,但我觉得它很合理…:-)