材质用户界面:从TextView中删除上/下箭头转盘

eta*_*luz 3 reactjs material-ui

我在Material UI中有这个TextView:

<TextField
      id="contact phone number"
      label="Contact phone number"
      type="number"
      value={this.state.contactPhoneNumber}
      onChange={this.handleChange('contactPhoneNumber')}
      placeholder="Contact phone number"
      margin="normal"
/>
Run Code Online (Sandbox Code Playgroud)

看起来像这样: 在此处输入图片说明

如何从TextView中删除向上和向下箭头转盘?

Roh*_*rma 19

对于 Material UI 版本 5

const Input = styled(MuiInput)(({ theme }) => ({
  "& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button": {
    display: "none",
  },
  "& input[type=number]": {
    MozAppearance: "textfield",
  },
}));
Run Code Online (Sandbox Code Playgroud)

然后将其用作

<Input 
      id="contact phone number"
      label="Contact phone number"
      type="number"
      value={this.state.contactPhoneNumber}
      onChange={this.handleChange('contactPhoneNumber')}
      placeholder="Contact phone number"
      margin="normal"
/>
Run Code Online (Sandbox Code Playgroud)

  • 对于那些 TypeScript 抱怨找不到 MuiInput 的人,只需放置 TextField 而不是 MuiInput。感谢你的回答。 (3认同)

Jai*_*ain 7

这对我有用(css帮助:https : //www.w3schools.com/howto/howto_css_hide_arrow_number.asp

input: {
    background: theme.palette.secondary.main,
    border: `1px solid white`,
    flex: 1,
    padding: '8px',
    '&[type=number]': {
      '-moz-appearance': 'textfield',
    },
    '&::-webkit-outer-spin-button': {
      '-webkit-appearance': 'none',
      margin: 0,
    },
    '&::-webkit-inner-spin-button': {
      '-webkit-appearance': 'none',
      margin: 0,
    },
  },
Run Code Online (Sandbox Code Playgroud)


小智 6

TextField文档中,该type道具接受有效的HTML输入类型。我相信出现上下箭头的原因是因为您指定number了该类型。

请尝试尝试type="tel",因为它似乎是电话号码的标准输入类型。

这是对tel类型引用,以及为什么使用它是个好主意。请注意,如果当前的浏览器不支持它,它将退回到常规的文本字段。

  • 这个解决方案对我有用,我想知道的一件事是如何取回我使用 type="number" 进行的数字数据类型验证? (3认同)
  • 我投了反对票,因为虽然这是一个快速修复,但它删除了内容是有效浮点数或整数的所有验证,这意味着您在表单验证中还有更多工作要做。通过 css (其他答案)删除箭头将保留数字约束,同时仍然解决问题。 (3认同)

Shu*_*rma 6

您可以尝试使用CSS方法。

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}
Run Code Online (Sandbox Code Playgroud)


Jus*_*ain 6

Material-Ui v5 beta

    MuiInput: {
      styleOverrides: {
        root: {
          '& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button':
            {
              display: 'none',
            },
          '& input[type=number]': {
            MozAppearance: 'textfield',
          },
        },
      },
    },
Run Code Online (Sandbox Code Playgroud)

  • 在你的答案中将 MuiInput 替换为 MuiTextField 对我有用,因为我正在使用 MUI 中的 TextField。谢谢 (2认同)

小智 5

在 Reactv 17.0.2和 Material-UI 中v 4.11.4,这对我有用:

input: {
    '& input[type=number]': {
        '-moz-appearance': 'textfield'
    },
    '& input[type=number]::-webkit-outer-spin-button': {
        '-webkit-appearance': 'none',
        margin: 0
    },
    '& input[type=number]::-webkit-inner-spin-button': {
        '-webkit-appearance': 'none',
        margin: 0
    }
},
Run Code Online (Sandbox Code Playgroud)

我刚刚通过classes.inputclassNameTextField