집중할 때 Reactjs로 입력의 모든 텍스트를 선택하는 방법은 무엇입니까?


답변:


187

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} />
      );
    },
})

1
이것은 순수한 함수 (클래스 없음)에서 작동합니다.
Jan Jarčík

11
클래스의 한 필드에만 해당되는 경우 추가 기능없이 더 단순화 할 수 있습니다.<input type='text' value='Some something' onFocus={e => e.target.select()} />
TK123


1
disabled텍스트 상자에서 어떻게 작동 합니까? jsfiddle.net/69z2wepo/317733
Rahul Desai

3
@RahulDesai 대신 disabled사용 readOnly: jsfiddle.net/kxgsv678
dschu

5
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()}}
      />
    )
  }
});

입력에 대한 참조를 설정해야하고 포커스를 받으면 select ()를 사용해야합니다.


5

감사합니다. 감사합니다. 나는 그렇게했다 :

var input = self.refs.value.getDOMNode();
            input.focus();
            input.setSelectionRange(0, input.value.length);

1

제 경우에는 입력이 모달에 나타난 후 처음부터 텍스트를 선택하고 싶었습니다.

componentDidMount: function() {
    this.refs.copy.select();
},

<input ref='copy'

0
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 ()는 입력 태그의 모든 내용을 설정합니다.


0

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}
/>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.