Javascript 获取textfield的值

Javascript 获取textfield的值,javascript,rxjs,Javascript,Rxjs,我正在使用一个文本字段,我想记录更改。我注意到change只跟踪你提交的时间,所以我使用了keyup,但这感觉有点不对劲,因为如果有人用鼠标复制并粘贴到文本字段中,它不会检测到它。有没有更严格的方法来观察文本字段中的变化 var textField = document.getElementById('message-input'); Rx.Observable.fromEvent(textField, 'keyup') .subscribe(_ => console.log(text

我正在使用一个文本字段,我想记录更改。我注意到
change
只跟踪你提交的时间,所以我使用了keyup,但这感觉有点不对劲,因为如果有人用鼠标复制并粘贴到文本字段中,它不会检测到它。有没有更严格的方法来观察文本字段中的变化

var textField = document.getElementById('message-input');
Rx.Observable.fromEvent(textField, 'keyup')
  .subscribe(_ => console.log(textField.value));

这实际上不是Rx的问题,而是一个一般的DOM问题。但是,从Rx的角度来看,无论最终使用什么事件,您都可以合并所有感兴趣的事件,并使用
distinctUntilChanged()
确保不会以重复事件结束

var keyup = Rx.Observable.fromEvent(textField, 'keyup', e => e.target.value);
var focus = Rx.Observable.fromEvent(textField, 'focus', e => e.target.value);


Rx.Observable.merge(keyup, focus)
  .distinctUntilChanged()
  .subscribe(x => console.log(x));

很好,我只是想更好地理解用于DOM监控的RxJS的实现。