【问题标题】:Remove zero inside input when try to erase尝试擦除时删除内部输入的零
【发布时间】:2016-08-21 08:34:33
【问题描述】:

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

我的组件:

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}
  />);
 };

【问题讨论】:

    标签: javascript html input reactjs


    【解决方案1】:

    发生这种情况是因为与 Chromium(可能还​​有其他浏览器)中的 HTML5 数字输入类型相关的行为...

    最简单的解决方案应该是使用text 输入类型并手动验证/格式化您的输入...

    另请参阅question/answer...

    【讨论】:

    • 这在第一次显示输入字段时工作正常,但如果我输入任何数字并尝试擦除它,输入字段中的值将设置回 0。有人会认为该值只是一个空字符串或其他东西,但没有..
    • 你为什么会期望一个空白字符串,它是一个数字输入。
    • @HenrikAndersson 如果我删除输入字段中的所有内容,我不会期望数字 0。我希望输入字段为空。也许不是一个空字符串,但还是空的。
    • 记住它是一个 number 类型的字段:哪个数字是“空字段”?我会说“0”...这就是为什么您会在空的数字输入字段中看到“0”...这可能是一个约定问题,但我觉得它很合理... :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2010-10-22
    • 2011-04-11
    相关资源
    最近更新 更多