首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript在ASP.Net C#中进行当前日期验证

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

Stack Overflow用户
提问于 2015-04-16 06:02:54
回答 2查看 1.5K关注 0票数 4

我正在尝试验证一个日期输入框,以检查它是否是当前日期/未来日期/无效日期,为此我使用了以下代码,但它根本不起作用。我尝试使用div标签以及标签,但它不会只显示任何东西。我从堆栈溢出本身获取了这段代码。请提前给你打help.Thank。

这是我的ASPX代码

代码语言:javascript
复制
                            <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代码

代码语言: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";
            }

     }
EN

回答 2

Stack Overflow用户

发布于 2015-04-16 06:12:26

将ClientIDMode设置为静态。

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

示例:

代码语言:javascript
复制
<asp:Label ID="Valid" ClientIDMode="Static" runat="server" Text="Label"></asp:Label>
票数 0
EN

Stack Overflow用户

发布于 2015-04-16 07:09:41

所以我很高兴地告诉你,你的剧本工作得很好。我测试过了,这是结果。

现在的问题是,按照我的想法,您可能会将脚本保留在页面的顶部。这意味着在声明TextBox代码之前将其保存在某个地方。尝试将脚本放在页面的底部。在body之后或者你喜欢的任何地方,但它应该接近尾声。也许能帮上忙。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29666492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档