Ограничить максимальную длину текстовой области до 100 в React - PullRequest
0 голосов
/ 23 марта 2020
<textarea
  className="form-control round InputActive textarea"
  id="txtarea-dwip-service-description"
  name="ServiceDescription"
  value={model.ServiceDescription}
  onChange={event => this.changeHandler(event)}
/>;

Как ограничить длину текстовой области до 100 символов в реакции.

Ответы [ 4 ]

1 голос
/ 23 марта 2020

Вы должны разрешить обновление значения, но не напрямую, так как вы хотите добавить к нему ограничение. Итак:

const [value, setValue] = useState('')

const handleChange = (event) => {
  const shouldSetValue = value.length < 100

  if (shouldSetValue) setValue(event.target.value)
}

<textarea
  className="form-control round InputActive textarea"
  id="txtarea-dwip-service-description"
  name="ServiceDescription"
  value={model.ServiceDescription}
  onChange={handleChange}
/>;
1 голос
/ 23 марта 2020

Вы можете использовать свойство JSX maxLength как maxLength = "100"

0 голосов
/ 23 марта 2020
                            <textarea maxLength={100} className="form-control round InputActive textarea" id="txtarea-dwip-service-description"
                                name="ServiceDescription" value={model.ServiceDescription} onChange={(event) => this.changeHandler(event)} 
                                ></textarea>

Мы должны указать атрибут вроде maxLength = {100}, тогда он сработает.

0 голосов
/ 23 марта 2020

Предполагая, что event - это новое значение, а this.changeHandler - это средство обновления состояния, вы можете сделать что-то вроде этого:

 <textarea
    maxLength={10}
    className="form-control round InputActive textarea"
    id="txtarea-dwip-service-description"
    name="ServiceDescription"
    onChange={event => this.changeHandler(event)}
    value={model.ServiceDescription} />

Это ограничит ограничение <textarea> в 100 символов.

...