我有一个材质ui自动完成元素
<Autocomplete
id="combo-box-demo"
autoHighlight
openOnFocus
autoComplete
options={this.state.products}
getOptionLabel={option => option.productName}
style={{ width: 300 }}
onChange={this.selectProduct}
renderInput={params => (
<TextField {...params} label="Select Product Name" variant="outlined" />
)}
/>;
当我单击按钮时,我希望这个元素得到焦点。
我尝试使用这里描述的引用,如何以编程方式对焦点输入作出反应
它适用于其他元素,但不适用于自动完成
请帮忙
根据material ui早期版本4或当前版本5,您可以使用autoFocus道具简单地聚焦自动完成输入元素,如果autoFocus设置为true,则输入元素将聚焦在自动完成组件的每个第一次装载上。
const [query, setQuery] = useState('');
<Autocomplete
.....
renderInput={(params) => {
const { InputLabelProps, InputProps, ...rest } = params;
return <InputBase
{...params.InputProps}
{...rest}
name="query"
value={query}
onChange={handleSearch}
autoFocus
/>
}}
/>
//这只是一个例子,你可以按照你的意愿处理下面的功能
function handleOnSearch({ currentTarget = {} }) {
const { value } = currentTarget;
setQuery(value);
}
如果要在单击按钮后打开自动完成输入:-
//button to be clicked to open autocomplete input
const clickButton=()=>{
setOpen(true)
}
const handleClose =()=>{
setOpen(false)
}
<Dialogue
close={handleClose}
open={open}
>
<DialogActions>
<Autocomplete
.....
renderInput={(params) => {
const { InputLabelProps, InputProps, ...rest } = params;
return <InputBase
{...params.InputProps}
{...rest}
name="query"
value={query}
onChange={handleSearch}
autoFocus
/>
}}
/>
</DialogActions>
</Dialogue>
干杯!!!
您应该保存对TextField
组件的引用,并在单击另一个元素(一旦触发某个事件)时使用此ref来聚焦。
let inputRef;
<Autocomplete
...
renderInput={params => (
<TextField
inputRef={input => {
inputRef = input;
}}
/>
)}
/>
<button
onClick={() => {
inputRef.focus();
}}
以下是指向一个工作示例的链接:https://codesandbox.io/s/young-shadow-8typb
您可以使用Autocomplete的openOnFocus
属性来决定是只关注输入,还是打开Autocomplete的下拉列表。
我第一次学习材料界面。我想自定义材质UI的文本字段。当文本字段未被选中时,我可以更改其样式;当文本字段聚焦时,我无法更改其样式。我正在使用将样式注入组件。我试过这个密码 问题: 如何更改焦点文本字段的样式?我们将不胜感激
我在我的页面上有一组选项卡,当点击时,将活动选项卡切换到点击选项卡的值。这工作得很顺利,但是当我看到新的活动标签周围有一个蓝色的大焦点框时,我嘴里留下了一股酸味。有没有一种React-y方法来防止这种情况? 带有preventDefault()的onMouseDown={this.someMethod}是否可以工作?
问题内容: 如果您具有以下HTML: 有没有一种办法风格,正在编辑不同于所有其他段落的段落是? 不会应用于正在编辑的段落。 如何为 正在编辑 的 段落 (-tag)设置不同的样式? 我希望使用仅CSS的解决方案,但也许我必须使用JavaScript。 编辑: 由于找不到纯CSS解决方案(对我来说,使用不是真正的解决方案),我现在正在寻找一些JavaScript行来设置要编辑节点上的属性。 问题答案
使用JavaScript 可以从多个方面增强表单字段的易用性。其中,最常见的一种方式就是在用户填写完当前字段时,自动将焦点切换到下一个字段。通常,在自动切换焦点之前,必须知道用户已经输入了既定长度的数据(例如电话号码)。例如,美国的电话号码通常会分为三部分:区号、局号和另外4 位数字。为取得完整的电话号码,很多网页中都会提供下列3 个文本框: <input type="text" name="te
我有一个带有
我有一个select输入,我使用MaterialUI库中的TextField组件创建它。选择某些选项后,我需要手动失去焦点。我尝试使用'inputRef'prop引用TextField,这非常有效,但是当我尝试在这个函数上启动blur()函数时。选择输入。就像我在这里做的,但没有材料库。 我得到一个错误,blur()函数不存在。我了解材料用户界面使用自定义el。为了创建UI,我只针对一个div或其