处理按键总是少提供一个作为event.target.value的键

时间:2018-07-08 17:21:19

标签: preact

所以我正在尝试精确操作,我需要处理按键事件以更新状态并稍后发布值

<div class="col-sm-12 col-md-9">
    <input class="" type="text" id="name" value={this.state.filled_values.name} onKeyPress={this.setValue("name")} placeholder="Your name" style="width:85%;"/>
</div>

我使用setValue函数处理此问题

setValue(field_name){
    return function(event){
        console.log(event.target.value)

        this.state.filled_values[field_name] = event.target.value;
        this.setState({});
        this.saveStateDebounced()
    }.bind(this)

}

但是,当我键入内容时,返回的值总是比我输入的内容短一键

例如:如果我输入abcd,

最后一个事件提供“ abc”作为event.target.value而不是abcd

1 个答案:

答案 0 :(得分:1)

这就是DOM的工作方式。 keypress事件已经marked as deprecated一段时间了。 keyupinput事件在所有浏览器中都更加可靠。