如何使用 Reactjs 选择输入中的所有文本,当它聚焦时
How to select all text in input with Reactjs, when it focused?
例如:codepen
var InputBox = React.createClass({
render: function() {
return (
<input className="mainInput" value='Some something'></input>
)
}
});
Functional component
:
const handleFocus = (event) => event.target.select();
const Input = (props) => <input type="text" value="Some something" onFocus={handleFocus} />
<小时 /> ES6 class component
:
class Input extends React.Component {
handleFocus = (event) => event.target.select();
render() {
return (
<input type="text" value="Some something" onFocus={this.handleFocus} />
);
}
}
<小时 /> React.createClass
:
React.createClass({
handleFocus: function(event) {
event.target.select();
},
render: function() {
return (
<input type="text" value="Some something" onFocus={this.handleFocus} />
);
},
})
另一种方式 使用useRefHook的功能组件:
const inputEl = useRef(null);
function handleFocus() {
inputEl.current.select();
}
<input
type="number"
value={quantity}
ref={inputEl}
onChange={e => setQuantityHandler(e.target.value)}
onFocus={handleFocus}
/>
让我们根据@dschu的答案添加最简单的:
...
<input type='text' value='Some something' onFocus={e => e.target.select()} />
...
谢谢,我很感激。我做到了:
var input = self.refs.value.getDOMNode();
input.focus();
input.setSelectionRange(0, input.value.length);
var InputBox = React.createClass({
getInitialState(){
return {
text: ''
};
},
render: function () {
return (
<input
ref="input"
className="mainInput"
placeholder='Text'
value={this.state.text}
onChange={(e)=>{this.setState({text:e.target.value});}}
onFocus={()=>{this.refs.input.select()}}
/>
)
}
});
您必须在输入上设置 ref,当聚焦时,您必须使用 select()。
就我而言,我想在输入出现在模态中后从头开始选择文本:
componentDidMount: function() {
this.refs.copy.select();
},
<input ref='copy'
var React = require('react');
var Select = React.createClass({
handleFocus: function(event) {
event.target.select()
},
render: function() {
<input type="text" onFocus={this.handleFocus} value={'all of this stuff'} />
}
});
module.exports = Select;
自动选择反应类输入中的所有内容。输入标记上的 onFocus 属性将调用函数。OnFocus 函数有一个称为自动生成的事件的参数。就像上面显示的event.target.select()将设置输入标签的所有内容。
相关文章:
- 当没有文本输入聚焦时检测空格键按下
- 无法使用 $('input[name=“rate”]').focus() 聚焦文本框;方法
- 不允许输入或聚焦的输入类型文本
- 想要清除文本框+聚焦文本框+阻止asp.net在同一按钮上回发
- 文本框聚焦事件并在IE9中输入问题
- jQuery聚焦文本框并转到末尾,但也可以设置光标的位置,以便用户可以看到它
- 当文本字段或文本区域使用纯JavaScript聚焦时,禁用键盘快捷键
- 在聚焦后检测到文本输入上的非聚焦
- 在聚焦文本输入的同时使用箭头键滚动(Javascript)
- 在聚焦文本输入时触发文件选择
- JQuery - 将光标放在文本区域的末尾,当光标聚焦时
- 如何使用 Reactjs 选择输入中的所有文本,当它聚焦时
- 是否可以将光标锁定/聚焦到文本区域的最后一行
- 在文本字段中插入文本后聚焦光标
- 如何聚焦文本区域单击主类
- NG-重复和文本区域聚焦
- 通过检测 JavaScript 中的 CTRL+A 键来聚焦文本框
- 当用户使用 jquery 将焦点聚焦到文本区域时显示按钮
- 聚焦文本输入时如何单击行?(反应原生)
- 实时文本聚焦