it-roy-ru.com

Как выделить весь текст на входе с помощью Reactjs, когда он сфокусирован?

Например: http://codepen.io/Enclave88/pen/YqNpog?editors=101

var InputBox = React.createClass({
  render: function() {
    return (
      <input className="mainInput" value='Some something'></input>
    )
  }
});
63
Alexander Shtang

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} />
      );
    },
})
112
dschu
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 ().

5
obreja catalin

Спасибо, я ценю это. Я сделал это так:

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

В моем случае я хотел выделить текст с начала после того, как ввод появился в модале:

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

<input ref='copy'
0
BlocksByLukas
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, сгенерированный автоматически. Как показано выше, event.target.select () установит все содержимое входного тега.

0
Kylo Jorgensen