Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React,如何在表单字段中键入特定字符_Javascript_Reactjs_React Jsx_Jsx - Fatal编程技术网

Javascript React,如何在表单字段中键入特定字符

Javascript React,如何在表单字段中键入特定字符,javascript,reactjs,react-jsx,jsx,Javascript,Reactjs,React Jsx,Jsx,我有一个输入字段组件。如果在输入字段中键入字符,我需要显示一个警报。有没有办法,我们可以确定输入的字符 export default class MyComponent extends Component { constructor(props) { super(props); this.state = {}; } handleKeyPress(e) { // show an alert if "#" character

我有一个输入字段组件。如果在输入字段中键入字符,我需要显示一个警报。有没有办法,我们可以确定输入的字符

export default class MyComponent extends Component {

    constructor(props) {
        super(props);
        this.state = {};
    }

    handleKeyPress(e) {
        // show an alert if "#" character is pressed
    }

    render() {
        return (
            <input onChange={this.handleKeyPress}>
        )
    }
}
编辑

我想在用户键入字符后立即显示警报。之后,他可以在没有提示的情况下继续键入任何字符。如果用户在输入字段中键入另一个,则应再次显示警报

任何想法都值得赞赏

export default class DayView extends Component {

  constructor(props) {
    super(props);
    this.state = {
      value: ''
    };

    // Bind `this`
    this.handleKeyPress = this.handleKeyPress.bind(this);
  }

  handleKeyPress(e) {
    // Get input value
    var value = e.target.value;
    // User has already typed a #
    var hasSymbol = !!value.substring(0, value.length - 1).match(/\#/);

    // Check if last character is a #
    if (value[value.length - 2] === '#') {
      alert('There is a # symbol');
    }

    // Check if this last character is a #
    // and the value already has one
    if (hasSymbol && value[value.length - 1] === '#') {
      alert('There is an other # symbol');
    }

    // Set state
    this.setState({ value });
  }

  render() {
    return (
      <input onChange={this.handleKeyPress} value={this.state.value}>
    )
  }
}
使用event.target.value获取值并获取最新字符。使用e.target.value[e.target.value.length-1]并检查是否有

希望这有帮助

类DayView扩展了React.Component{ 构造器{ 超级作物; this.state={}; } 手电筒{ 如果e.target.value[e.target.value.length-1]== setTimeout=>警报'Got',200 //如果按下字符,则显示警报 } 渲染{ 回来 } } ReactDOM.render,document.getElementById'app' 使用event.target.value获取值并获取最新字符。使用e.target.value[e.target.value.length-1]并检查是否有

希望这有帮助

类DayView扩展了React.Component{ 构造器{ 超级作物; this.state={}; } 手电筒{ 如果e.target.value[e.target.value.length-1]== setTimeout=>警报'Got',200 //如果按下字符,则显示警报 } 渲染{ 回来 } } ReactDOM.render,document.getElementById'app' keyUp比keyPress&change更适合这种情况

希望这有帮助

类DayView扩展了React.Component{ 构造器{ 超级作物; this.state={}; this.handleKeyUp=this.handleKeyUp.bindthis; } handleKeyUpe{ this.refs.atom.value.endsWith&&setTimeout=>alert'Got',200//在按下字符时显示警报 } 渲染{ 回来 } } ReactDOM.render,document.getElementById'app' keyUp比keyPress&change更适合这种情况

希望这有帮助

类DayView扩展了React.Component{ 构造器{ 超级作物; this.state={}; this.handleKeyUp=this.handleKeyUp.bindthis; } handleKeyUpe{ this.refs.atom.value.endsWith&&setTimeout=>alert'Got',200//在按下字符时显示警报 } 渲染{ 回来 } } ReactDOM.render,document.getElementById'app'
谢谢你的快速回复。这真的很有帮助。我想在用户键入字符后立即显示警报。之后,他可以在没有提示的情况下继续键入任何字符。如果用户在输入字段中键入另一个,则应再次显示警报。感谢您的快速回复。这真的很有帮助。我想在用户键入字符后立即显示警报。之后,他可以在没有提示的情况下继续键入任何字符。如果用户在输入字段中键入另一个,则应再次显示警报。感谢您的评论。你的回答真的很有帮助。我对这个问题作了进一步的说明。你的回答是appreciated@ErangaKapukotuwa更新了答案。您可以根据需要调整延迟时间。谢谢@PraneshI不知道,已经做出的批准正在通过添加另一个批准来删除。第二个答案也有一半正确。这就是为什么我在其中加入了我的认可。不管怎样,我已经改正了。谢谢你的评论。你的回答真的很有帮助。我对这个问题作了进一步的说明。你的回答是appreciated@ErangaKapukotuwa更新了答案。您可以根据需要调整延迟时间。谢谢@PraneshI不知道,已经做出的批准正在通过添加另一个批准来删除。第二个答案也有一半正确。这就是为什么我在其中加入了我的认可。不管怎样,我纠正了它。