React中将文本区域的最大长度限制为100

问题描述 投票:-1回答:5
<textarea
  className="form-control round InputActive textarea"
  id="txtarea-dwip-service-description"
  name="ServiceDescription"
  value={model.ServiceDescription}
  onChange={event => this.changeHandler(event)}
/>;

如何在响应中将文本区域的长度限制为100个字符。

html reactjs text textarea maxlength
5个回答
1
投票

您可以将JSX maxLength属性用作maxLength =“ 100”


1
投票

您应该允许值更新,但不允许直接更新,因为您想对其进行限制。因此:

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

0
投票

假设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个字符。


0
投票
                            <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
投票

仅在处理程序中使用slice(0, 100)使其完全受控

  const [value, setValue] = useState("");
  const onChange = e => {
    setValue(e.currentTarget.value.slice(0, 100));
  };
  return (
    <textarea
      value={value}
      onChange={onChange}
    />
  );

enter image description here


Edit hardcore-darkness-f5n0s

© www.soinside.com 2019 - 2024. All rights reserved.