2

我试图捕捉我的日期输入何时被清除为“MM/DD/YYYY”。我不希望我的输入永远是“MM/DD/YYYY”。我怎样才能捕捉到它并在它被清除时改变它的值?我的功能看起来像这样,它似乎不起作用。

   handleChange = event => {
        if(isNaN(event.target.value)){
         event.target.value = moment().format("MM/DD/YYYY");
         return;
        }
         this.setState({date: event.target.value});
        }
4

2 回答 2

1

您是否使用 type 的本机 HTML 输入元素date

<input type="date" />

如果是,则空输入 ( 'MM/DD/YYYY') 被简单地解释为空字符串''

首先,我们要维护组件内的日期状态,输入值会映射到date. 然后,在onChange事件中,如果输入值为空字符串,您可以if通过使用 更新状态并将值更新为今天的日期,将语句中的日期重置为setState()今天的日期。

class YourComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      date: ""
    };
  }
  onChange = e => {
    const date = e.currentTarget.value;
    if (date === "") {
      this.setState({
        date: moment().format("YYYY-MM-DD")
      });
    } else {
      this.setState({
        date
      });
    }
  };

  render() {
    const { date } = this.state;

    return <input type="date" value={date} onChange={e => this.onChange(e)} />;
  }
}

我在这里创建了一个演示

于 2019-12-31T03:03:38.287 回答
0
<body>
  <input type='date'onchange="myFunction(event)"/> 

  <script>
    function myFunction(event) {
      if(event.target.value ==''){
              // You can write your code here.
              // console.log(event.target.value);
      }
    }
  </script>
</body>

在铬上工作正常

于 2019-12-31T03:48:38.057 回答