在textarea上反应Redux表格字符计数器

时间:2018-02-27 14:36:50

标签: javascript reactjs react-redux-form

我有一个用React-Redux-Form构建的表单,需要实现并显示字符数以将输入限制为200.我已经为它实现了验证,但是想要在用户输入时显示字符数。 / p>

这是我的控制权:

<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>

有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

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