javascript - Maxlength 不起作用 React Js

标签 javascript html reactjs

我有一个 React 输入,但 maxlength 不起作用。有谁知道如何解决这个问题?

这是 handleChangeInput

 handleChangeInput(input) {
    this.setState({
        ...this.state,
        form: {
            ...this.state.form,
            [input.target.name]: input.target.value
        }
    })
}

这是我的输入:

<div className="input-field col s12 m6 l6">
    <input onChange={this.handleChangeInput} value={this.state.form.message} type="text" className="phone validate" name="phone" maxlength="11"/>
    <label for="telefone">Telefone</label>
</div>

Code preview

最佳答案

属性和属性名称在 React 中通常是 camelCasemaxLength 有效。

<input
  onChange={this.handleChangeInput}
  value={this.state.form.message}
  type="text"
  className="phone validate"
  name="phone"
  maxLength="11"
/>

但是,如果您为输入提供的 value 长于 maxLength,您仍然可以覆盖此选项。解决此问题的唯一方法是检查回调中 value 的长度,并将其 chop 。

示例

class App extends React.Component {
  state = { form: { message: "" } };

  handleChangeInput = event => {
    const { value, maxLength } = event.target;
    const message = value.slice(0, maxLength);

    this.setState({
      form: {
        message
      }
    });
  };

  render() {
    return (
      <input
        onChange={this.handleChangeInput}
        value={this.state.form.message}
        type="text"
        className="phone validate"
        name="phone"
        maxLength="11"
      />
    );
  }
}

关于javascript - Maxlength 不起作用 React Js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51161510/

相关文章:

javascript - 使用 JS 或 jQuery 检查所有输入的值是否为零

javascript - 如果JavaScript对象是通过引用传递的,为什么更新属性值不会更新局部变量

javascript - 如果正则表达式模式匹配,则字符串中的粗体字

php - Bootstrap CSS 会覆盖主题吗?

javascript - 无法在 react 中安装@mui/x-data-grid

javascript - 子导航显示问题

javascript - componentWillMount 中的多个 fetch 语句

html - 无法将 flexbox child 的宽度设置为 100%

javascript - 没有初始状态的 react 钩子(Hook)

javascript - 当我使用节点版本 12 时,依赖项 wdio-cucumber-framework 未安装。它的安装直到节点 10