我正在使用 react-datetime 并希望禁止任何人选择过去的日期/时间,因为这将发送过去似乎不应该发送的电子邮件。文档向我展示了如何禁用之前的日期,但是当我尝试禁用分钟时,仍然可以在日历的下拉框中手动更改它。下面的代码是大型电子邮件平台的一部分,但应该能够对这些片段有所了解。文件位于此处,您也可以在那里看到整个 repo。
理想情况下,如果有人选择过去一分钟或更长时间的日期或时间,它应该跳回当前,并且只有在当前时刻才能“发送”。任何帮助都会很棒-谢谢!
isValidDate(dt) {
return (dt >= (moment().startOf('day')))
&& (dt <= moment().add(30, 'days'))
&& moment().subtract(1, 'minute');
}
我已经尝试了上述方法,但仍然让您手动编辑:(
class EmailSendDialog extends Component {
constructor(props) {
super(props);
this.state = {
listId: null,
now: true,
date: moment(),
tz: this.defaultTz
};
}
handleDateTimeSelect(date) {
this.setState({ date });
}
isValidDate(dt) {
return (dt >= (moment().startOf('day')))
&& (dt <= moment().add(30, 'days'))
&& moment().subtract(1, 'minute');
}
要渲染,我有这个:
<DateTime
value={date}
dateFormat="D MMM YYYY"
isValidDate={this.isValidDate}
onChange={(_date) => this.handleDateTimeSelect(_date)}
/>