【问题标题】:How to prevent entering wrong dates in react-admins DateInput?如何防止在 react-admins DateInput 中输入错误的日期?
【发布时间】:2021-05-27 13:18:27
【问题描述】:

如何防止用户手动输入错误的日期,例如 30.Feb.2020?

import { DateInput } from "react-admin";
const validateDate = (value) => {
        console.debug('value of the date is ',value);
        // In case of wrong date like 30.Feb.2020 the value is empty, so no chance to validate the correctness.
    if(isCorrect(value)){
        return undefined
    }
    return 'error'
};


<DateInput validate={[validateDate]} source={'myDate'}></DateInput>

我尝试验证日期,但它是在错误日期的情况下只是空(未定义),因此没有机会验证或区分空日期或错误日期。

如何防止用户输入错误的日期?

【问题讨论】:

    标签: react-native material-ui react-admin


    【解决方案1】:

    您可以使用模块来验证日期。例如使用时刻

    const isValidDate = (toTest) => moment(toTest, "D/M/YY", true).isValid()
    

    【讨论】:

    • 我的问题不在于验证本身。正如我所说,如果日期输入为 2020 年 2 月 30 日,则该值(在您的情况下为 toTest)为空。该值未填写,如何验证?
    • 对不起,我错过了。您能否添加DateInput 的导入声明。一些模块会为你验证输入,这里似乎就是这种情况,但你应该确保在文档中
    • 我在问题中添加了导入语句。 DateInput 来自 React-Amin。我没有在文档中找到任何内容。
    • 您可以在这里查看代码github.com/marmelab/react-admin/blob/master/packages/…。看起来模块将您输入的数据转换为第 45 行的日期对象,我有一种感觉,如果日期无效,它将失败,您将一无所获。我没有测试过,所以你应该。如果是这种情况,您不需要验证日期
    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2013-11-13
    • 2011-06-16
    相关资源
    最近更新 更多