Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择内部的所有文本在内部输入焦点上反应引导类型前进_Javascript_Reactjs_React Bootstrap Typeahead - Fatal编程技术网

Javascript 选择内部的所有文本在内部输入焦点上反应引导类型前进

Javascript 选择内部的所有文本在内部输入焦点上反应引导类型前进,javascript,reactjs,react-bootstrap-typeahead,Javascript,Reactjs,React Bootstrap Typeahead,我需要在聚焦输入时(例如单击)选择react bootstrap typeahead中的所有文本 在这方面没有提及 我怎样才能做到这一点呢?没有公开的API或规范的方法可以做到这一点,但这当然是可能的。您需要做的是获取输入节点,然后。下面是一个例子: class MyTypeahead extends React.Component { render() { return ( <Typeahead onFocus={(event) =>

我需要在聚焦输入时(例如单击)选择
react bootstrap typeahead
中的所有文本

在这方面没有提及


我怎样才能做到这一点呢?

没有公开的API或规范的方法可以做到这一点,但这当然是可能的。您需要做的是获取输入节点,然后。下面是一个例子:

class MyTypeahead extends React.Component {    
  render() {
    return (
      <Typeahead
        onFocus={(event) => {
          const inputNode = document.getElementById('typeahead-input');
          inputNode.setSelectionRange(0, inputNode.value.length);
        }}
        inputProps={{id: 'typeahead-input'}}
      />
    );
  }
}
类MyTypeahead扩展了React.Component{
render(){
返回(
{
constInputNode=document.getElementById('typeahead-input');
inputNode.setSelectionRange(0,inputNode.value.length);
}}
inputProps={{id:'typeahead input'}
/>
);
}
}
编辑:获取输入节点的其他方法:

从活动中:

class MyTypeahead extends React.Component {    
  render() {
    return (
      <Typeahead
        onFocus={(event) => {
          const inputNode = event.target;
          inputNode.setSelectionRange(0, inputNode.value.length);
        }}
        ...
      />
    );
  }
}
类MyTypeahead扩展了React.Component{
render(){
返回(
{
const inputNode=event.target;
inputNode.setSelectionRange(0,inputNode.value.length);
}}
...
/>
);
}
}
使用ref:

class MyTypeahead extends React.Component {    
  render() {
    return (
      <Typeahead
        onFocus={(event) => {
          const inputNode = this.typeahead.getInstance().getInput();
          inputNode.setSelectionRange(0, inputNode.value.length);
        }}
        ref={(el) => this.typeahead = el}
        ...
      />
    );
  }
}
类MyTypeahead扩展了React.Component{
render(){
返回(
{
const inputNode=this.typeahead.getInstance().getInput();
inputNode.setSelectionRange(0,inputNode.value.length);
}}
ref={(el)=>this.typeahead=el}
...
/>
);
}
}

谢谢。只是想知道——有没有办法从事件中识别出重点节点?也就是说,不需要指定id?将此行为添加到一个formgroup中的多个TypeAhead时会很有帮助。@johnnyB:是的,您可以使用
event.target
。请参阅更新的答案。