Material-UI 自动完成和 TextField 触发谷歌自动完成

IT技术 javascript reactjs material-ui
2021-05-10 10:22:18

我正在尝试在我的项目中实现自动完成组件,但一段时间后我从浏览器获取自动填充/自动完成。你知道我怎么能把它关掉吗?

                        <Autocomplete

                            id="combo-box-demo"
                            options={battleRepos}
                            getOptionLabel={option => option.full_name}
                            style={{ width: 500 }}
                            renderInput={params => (
                                <TextField {...params} 
                                    label="Combo box"  
                                    variant="outlined"
                                    onBlur={event => console.log(event.target.value)}

                                    fullWidth  />
                            )}
                        />

有问题的图片

2个回答

更新

随着@material-ui/core 4.7.0 和@material-ui/lab 4.0.0-alpha.33 的发布,此问题现已修复,不再需要如下所示的解决方法。


这已在最近的拉取请求中修复,但尚未发布(将在下一个版本中发布)。

如果您想在发布之前解决此问题(可能会在几天内),您可以设置inputProps.autoComplete = "off"如下:

<Autocomplete
    id="combo-box-demo"
    options={battleRepos}
    getOptionLabel={option => option.full_name}
    style={{ width: 500 }}
    renderInput={params => {
        const inputProps = params.inputProps;
        inputProps.autoComplete = "off";
        return (
          <TextField
            {...params}
            inputProps={inputProps}
            label="Combo box"  
            variant="outlined"
            onBlur={event => console.log(event.target.value)}
            fullWidth
          />
        );
      }
    }
/>

即使是最新的:

 "@material-ui/core" 
 "@material-ui/lab"

其中包含设置为的 autoComplete 属性'off',我无法让自动填充框消失。

还尝试在表单标签上设置属性 <form autoComplete="off">...</form>

无济于事。

解决问题的方法是将 autoComplete 字段设置为“新密码”

<Autocomplete
    id='id'
    options={data}
    onChange={(e, val) => input.onChange(val)}
    renderInput={(params) => {
        params.inputProps.autoComplete = 'new-password';
        return <TextField {...params}
            label={label} placeholder="Type to Search" />
    }} 
/>