javascript - 在 ASP.Net C# 中使用 JavaScript 进行当前日期验证

标签 javascript c# asp.net

我正在尝试验证日期输入框以检查它是否是当前日期/ future 日期/无效日期,我为此使用了以下代码,但它根本不起作用。我尝试使用 div 标签和标签,但它不会显示任何内容。我从 stackoverflow 本身获取了这段代码。请帮忙。提前谢谢你。

这是我的ASPX代码

                            <div class="form-group">
                                <span class="txt_orange">*</span><span class="LabelClass">Request Created on</span>
                                <br />
                                <asp:TextBox ID="txt_req_createdon_new" runat="server" CssClass="form-control dtPick funkystyling" onBlur="CheckForEmpty(this.id,'Select Start Date')" onkeyup="checkDate()" ></asp:TextBox>
                                <asp:CalendarExtender ID="CalendarExtender3" runat="server" Enabled="True" TargetControlID="txt_req_createdon_new" CssClass="red" Format="dd/MM/yyyy">`enter code here`
                                </asp:CalendarExtender>
                                <%--<asp:Label ID="Valid" runat="server" Text="Label"></asp:Label>--%>

                            </div>

                            <div id="Valid" runat="server"></div> 

这是JavaScript代码

function isFutureDate(idate) {
            var today = new Date().getTime(),
                idate = idate.split("/");

            idate = new Date(idate[2], idate[1] - 1, idate[0]).getTime();
            return (today - idate) < 0 ? true : false;
        }    

        function checkDate() {
            var idate = document.getElementById("txt_req_createdon_new"),
            resultDiv = document.getElementById("Valid"),

            dateReg = /(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/]201[4-9]|20[2-9][0-9]/;               

            if (dateReg.test(idate.value)) {
                if (isFutureDate(idate.value)) {
                    resultDiv.innerHTML = "Entered date is a future date";
                    resultDiv.style.color = "red";
                } else {
                    resultDiv.innerHTML = "It's a valid date";
                    resultDiv.style.color = "green";
                }
            } else {
                resultDiv.innerHTML = "Invalid date!";
                resultDiv.style.color = "red";
            }

     }

最佳答案

将 ClientIDMode 设置为静态。

默认情况下,ClientIDMode 为 Auto,这意味着,将通过将每个父命名容器的 ID 值与控件的 ID 值连接起来生成客户端 ID。 See

例子:

<asp:Label ID="Valid" ClientIDMode="Static" runat="server" Text="Label"></asp:Label>

关于javascript - 在 ASP.Net C# 中使用 JavaScript 进行当前日期验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29666492/

相关文章:

c# - 一个服务,两个实例,如何使用 ASP.NET Core DI 进行配置?

c# - 为 asp.net 网站运行简单的脚本

jquery - 我可以使用键盘快捷键来使用我的网站吗

javascript - 使用 HTML 表单发送跨域 HTTP Post

javascript - Bootstrap 3 导航栏折叠不展开

javascript - 为什么有些浏览器会打乱我的图像框?

C#:如何在 Windows 应用程序中从 Web 浏览器读取数据

javascript - 如何返回列值?

c# - LINQ 方法通过一个函数加入一个系列中的每 n 个元素,然后将这些结果重新聚合到一个新列表中?

ASP.NET 主题 : edit by user