【问题标题】:React Redux Form Character counter on textarea在 textarea 上反应 Redux 表单字符计数器
【发布时间】:2018-02-27 14:36:50
【问题描述】:

我有一个使用React-Redux-Form 构建的表单,需要实现并显示字符数以将输入限制为 200。我已经对其进行了验证,但希望在用户键入时显示字符数。

这是我的控制:

<div className="input-group">
  <label>Step 2: Description of Goods *</label>
  <Control.textarea
   id="descriptionOfGoods"
   model=".descriptionOfGoods"
   name="descriptionOfGoods"
   autoComplete="off"
   className="form-control"
   controlProps={{onKeyPress:_preventCarriageReturn}}
   mapProps={{..._mapFieldClass}}
   validators={{isRequired, remoteError, maxLength: (val) => maxLength(val, 200)}}
   onChange={(e) => this.removeApiError(e)}
  />

  <span className="tick-valid"><Icon yicon="Validation_Tick"/></span>
  <span className="cross-error"><Icon yicon="X"/></span>
  <Errors 
   id="descriptionOfGoodsErrors"
   className="help-block"
   model=".descriptionOfGoods"
   show={{touched: true, focus: false}}
   messages={{
     isRequired: 'Description of goods is required.',
     remoteError: validationError.descriptionOfGoods,
     maxLength: 'Max characters allowed is 200'
   }}
  />
</div>

有什么想法吗?

【问题讨论】:

标签: javascript reactjs react-redux-form


【解决方案1】:

对于文本区域,您需要监听三个事件。一个用于 onKeyUp,一个用于 onPaste,一个用于 onCut。然后,每当触发其中一个事件时,您都可以在 textarea 中获取当前文本以确定当前长度,并使用该值更新可以显示剩余字符数的 span。

【讨论】:

  • 在现代浏览器中,您可以只监听input 事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-05
  • 2018-11-03
  • 1970-01-01
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多