Gor*_*ath 5 reactjs react-datepicker
我正在使用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)} />
Run Code Online (Sandbox Code Playgroud)
validateDate是一个将返回的函数,true或者false,如果日期有效,则true返回false。我怎样才能达到这一要求,请您能帮助我吗?
我找到了解决方案,首先将控件添加为:
<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)}
/>
Run Code Online (Sandbox Code Playgroud)
现在,为该事件添加以下代码:
handleChangeRaw(value) {
this.setState({ startDate: value });
}
handleChange(date) {
this.setState({ selectedValue: date });
}
focousOut(value) {
if (!validateDate(value)) {
this.setState({ startDate: '' });
this.setState({ selectedValue: moment() });
}
}
Run Code Online (Sandbox Code Playgroud)
validateDate是用于验证日期的函数。如果返回false意味着日期无效,在这种情况下将值重置为初始状态。
| 归档时间: |
|
| 查看次数: |
5148 次 |
| 最近记录: |