【问题标题】:ASP .Net Core Date Range ValidationASP .Net Core 日期范围验证
【发布时间】:2020-11-06 18:37:10
【问题描述】:

我有一个场景,我需要允许用户只选择一个范围内的日期。我的代码如下。如果Field.Name 包含Date 关键字,我将显示datepicker。有没有办法可以验证if 条件内的日期范围,或者我必须使用某种JS 来验证?

<tbody>
    @for (int i = 0; i < Model.Fields.Count; i++)
    {
        <tr>
            <td>
                <div>
                    @{
                        if (Model.Fields[i].Name.ToString().Contains("Date"))
                        {
                            <input type="date" asp-for="Fields[i].Value" />
                        }
                        else
                        {
                            <input type="text" asp-for="Fields[i].Value" />
                        }
                    }
                </div>
            </td>
        </tr>
    }
</tbody>

任何指导都会有很大帮助..

【问题讨论】:

  • 如果您将数据发布到后端 (ASP),您可以在那里进行验证。如果您希望用户在提交之前知道它是无效的,您需要以某种方式使用 Javascript/AJAX。
  • 您可以使用minmax 属性来限制日期stackoverflow.com/a/8574600/2030565。许多日期选择器还允许您限制日期范围。

标签: javascript html asp.net-core razor-pages


【解决方案1】:

首先你可以参考it,其次你可以使用onchange="xxx"。这是一个工作的demo:

查看:

<div id="div1">
    <input type="date" name="date1" id="date1" min="2020-01-01" max="2020-12-31"/>
    <input type="date" name="date2" id="date2" onchange="compare(this)" />
</div>
@section scripts{ 
<script>
    function compare(item) {
        if (new Date($(item).val()) > new Date("2020-7-14")) {
            $(item).attr("value", "");
            $("#date2").remove();
            var date2 = '<input type="date" name="date2" id="date2"  onchange="compare(this)" />';
            $("#div1").append(date2);
        }

    }
</script>

}

结果:

【讨论】:

  • 非常感谢。在您的指导下,我能够找到解决方案。
【解决方案2】:

这是我在Yiyi You 指导下的工作代码。

DateTime dtValidFromDate = dtInputDate.AddDays(-3);
DateTime dtValidToDate = dtInputDate.AddDays(1);
string strInputDate = dtInputDate.ToString("yyyy-MM-dd");
string strValidFromDate = dtValidFromDate.ToString("yyyy-MM-dd");
string strValidToDate = dtValidToDate.ToString("yyyy-MM-dd");
<input type="@Model.Fields[i].Type" asp-for="Fields[i].Value"
   value="@strInputDate" min="@strValidFromDate" max="@strValidToDate"/>```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多