gpt4 book ai didi

reactjs - 如何清除react-datepicker中输入的值?

转载 作者:行者123 更新时间:2023-12-03 13:31:28 27 4
gpt4 key购买 nike

我正在使用 react-datepicker 作为我们的日历控件。现在的问题是,如果用户输入了像“djfdjfhjkhdf”这样的无效日期,那么在此控件中没有任何内容可以验证。因此,我决定编写自己的验证函数,并在模糊事件中调用该函数(如果日期无效),然后清除用户输入的文本。我的代码是这样的:

import DatePicker from 'react-datepicker';
import 'react-datepicker/dist/react-datepicker.css';
focousOut(value) {
this.handleChange('');
}
handleChange(date) {
this.setState({ selectedValue: date });
this.setState({ startDate: date });
}

<DatePicker
selected={this.state.selectedValue}
value={this.state.startDate}
onChange={this.handleChange}
onBlur={event => this.focousOut(event.target.value)} />

validateDate 是一个函数,它将返回 truefalse,当且仅当日期有效,则 true 否则返回。我怎样才能达到这个要求,你能帮我吗?

最佳答案

我找到了解决方案,首先将控件添加为:

<DatePicker
selected={this.state.selectedValue}
value={this.state.startDate}
onChange={this.handleChange}
onChangeRaw={(event) =>
this.handleChangeRaw(event.target.value)}
onBlur={event => this.focousOut(event.target.value)}
/>

现在,为该事件添加以下代码:

handleChangeRaw(value) {
this.setState({ startDate: value });
}
handleChange(date) {
this.setState({ selectedValue: date });
}
focousOut(value) {
if (!validateDate(value)) {
this.setState({ startDate: '' });
this.setState({ selectedValue: moment() });
}
}

validateDate 是用于验证日期的函数。如果返回 false 则表示日期无效,在本例中将值重置为初始状态。

关于reactjs - 如何清除react-datepicker中输入的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46035634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com