我正在尝试验证一个日期输入框,以检查它是否是当前日期/未来日期/无效日期,为此我使用了以下代码,但它根本不起作用。我尝试使用div标签以及标签,但它不会只显示任何东西。我从堆栈溢出本身获取了这段代码。请提前给你打help.Thank。
这是我的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";
}
}发布于 2015-04-16 06:12:26
将ClientIDMode设置为静态。
默认情况下,ClientIDMode是Auto,这意味着客户端Id将通过将每个父命名容器的ID值与控件的ID值连接而生成。看见
示例:
<asp:Label ID="Valid" ClientIDMode="Static" runat="server" Text="Label"></asp:Label>发布于 2015-04-16 07:09:41
所以我很高兴地告诉你,你的剧本工作得很好。我测试过了,这是结果。


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