javascript - 如何在ReactJS中获取onCut输入值

标签 javascript reactjs forms

我有一个组件UsernameInput,它是通过redux存储管理的。 我想在 onCut 事件触发时获取输入值。

import React from 'react'
import connect from 'react-redux'
import {validateUsername} from '../actions'

const UsernameInput = ({username, validateUsername}) => {
    
    return (

        <div className="form-group">
            <input type="text" className="form-control"
            onChange={e => validateUsername(e.target.value)}
            onPaste={e => validateUsername(e.clibboardData.getData('Text'))}
            onCut={e => validateUsername(e.currentTarget.value)}
            defaultValue={username}
            />
        </div>
    );
}

export default connect((state) => state.validateUsername, {validateUsername})(UsernameInput);

也就是说,如果输入的值为“blablabla”,并且在剪切整个文本后,应该使用空字符串调用 validateUsername 函数,如果输入的一半被剪切,那么它应该使用“blab”等参数进行调用。 onCut e.currentTarget.value 返回剪切前输入字段的值,但我希望它返回实际的输入值。

怎么做?

最佳答案

我找到了一个独特的解决方案。我只是捕获 onKeyUp 事件,而不是捕获 onChangeonPasteonCut 事件:

<input type="text" className="form-control"
onKeyUp={e => validateUsername(e.currentTarget.value)}
defaultValue={username}
/>

它适用于所有事件。

关于javascript - 如何在ReactJS中获取onCut输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64133649/

相关文章:

javascript - 如何使用 Vue JS 从下拉列表中删除数组中的项目

javascript - React 中的子方法可以有更改处理程序吗?

javascript - 如果每 3 个包含此语句,则映射 if 语句

python - 如何从子类中的父表单中删除字段?

ruby-on-rails - 在 Rails 表单助手中包含 Bootstrap 角色属性

javascript - 使用主干模板创建独特的 div

javascript - 使用选择选项更改语言 (URL)

javascript - Sequence.js Slider 不自动播放?

javascript - 输入值为空 react

javascript - 按回车键时AngularJS表单不提交