有没有一种方法可以在字数限制超出限制时停止用户输入。

目前,我在textareae.preventDefault();中具有onChange。但是,它似乎并没有阻止用户输入。有反正可以实现这一目标,我知道您可以将addEventlister替换为keypress并阻止默认设置。但是reactJS如何实现相同的功能呢?

在jQuery中:(我如何在reactJS中实现相同功能)?

  $(function(){
    $('textarea').keypress(function() {
      var l = $(this).val().split(' ');
      if(l.length > 50){
        return false;
      }
    })
  })

最佳答案

在react中,您可以使用onKeyPress事件并使用.preventDefault.stopPropagation方法,如下所示

var Component = React.createClass({
    handleKeyPress: function(e) {
        var value = e.currentTarget.value.split(' ');

        if (value.length > 10) {
            e.preventDefault();
            e.stopPropagation();
        } else {
            console.log(value);
        }
    },
    render: function() {
        return <textarea onKeyPress={ this.handleKeyPress }></textarea>;
    }
});

Example
return false事件处理程序中的jQuery实际上与调用e.preventDefaulte.stopPropagation相同

关于ReactJS onChange阻止用户继续输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33407126/

10-09 19:03