首页 > 解决方案 > 使用 RxJS 在输入元素中取消用户输入特定字符

问题描述

我想知道如何防止用户在输入元素中输入空格。

这是我到目前为止得到的:

const userTypedInSearchBox = Observable.fromEvent(searchBar, 'input').asHot();

whenAnyOf(userTypedInSearchBox).subscribe(e => {
    if(e.keyCode === 32) {
        e.preventDefault()
    }
});

标签: javascriptrxjs

解决方案


堆栈闪电战

这是一种方法,您可以实现它。我认为您面临的问题是由于您正在收听的事件类型。

import { Observable, fromEvent } from 'rxjs'; 
import { map } from 'rxjs/operators';

var searchBar = document.querySelector('input');
const userTypedInSearchBox = fromEvent(searchBar, 'keydown');

userTypedInSearchBox.subscribe((e: KeyboardEvent) => {
    if(e.keyCode === 32) {
      console.log(e);
        e.preventDefault();
        e.stopPropagation();
    }
});

推荐阅读