Asp.net 文本框应仅接受日期
我有一个web表单,其中有几个Asp.net 文本框应仅接受日期,asp.net,sql,vb.net,sql-server-2008,Asp.net,Sql,Vb.net,Sql Server 2008,我有一个web表单,其中有几个date字段,我使用Ajaxcalendar让用户输入日期,我想限制用户输入日期以外的额外信息,甚至不能在文本框中键入除了calendar extender的值以外的任何内容。我正在使用ASP.NET、VB.NET和SQLServer2008数据库 我的日期格式是dd-MMM-yy 我试过: Enable = false 但它并没有将日期保存到数据库中 下面是我的代码示例: <asp:TextBox ID="TextBox5" runat="server"
date
字段,我使用Ajax
calendar让用户输入日期,我想限制用户输入日期以外的额外信息,甚至不能在文本框中键入除了calendar extender的值以外的任何内容。我正在使用ASP.NET、VB.NET和SQLServer2008数据库
我的日期格式是dd-MMM-yy
我试过:
Enable = false
但它并没有将日期保存到数据库中
下面是我的代码示例:
<asp:TextBox ID="TextBox5" runat="server" Width="150px" style="margin-top: 0px"
ReadOnly="False" CausesValidation="True"></asp:TextBox>
<asp:CalendarExtender ID="TextBox5_CalendarExtender" runat="server" Format="dd-MMM-yy" PopupButtonID="ImageButton1" TargetControlID="TextBox5">
</asp:CalendarExtender>
谢谢你的帮助
谢谢不要设置
ReadOnly=True
或Enabled=False
,这样会阻止值被发回。您只需要防止用户交互,而允许值可更新,否则。一种方法是防止字段获得焦点,请尝试添加此属性:
onfocus = "this.blur();"
有关更多信息,请查看。首先,您需要在代码隐藏中将文本框设置为“只读”,通常在页面加载事件中,如下所示:
TxtDate.Attributes.Add("readonly","readonly");
接下来,在标记中将文本框的设计修改为如下所示:
<asp:TextBox ID="TxtDate" runat="server" Width="150px"></asp:TextBox>
<a href="JavaScript:clearText('<%=TxtDate.ClientID %>')">
<img alt="" src="../clear.png"></img></a>
<asp:CalendarExtender ID="CalendarExtender1" runat="server" Enabled="True"
Format="dd-MMM-yy" PopupPosition="Right" TargetControlID="TxtDate">
</asp:CalendarExtender>
最后添加以下小脚本以清除日期:
<script type="text/javascript">
function clearText(ctrl) {
document.getElementById(ctrl).value = "";
};
函数明文(ctrl){
document.getElementById(ctrl).value=“”;
};
这样做,当您单击文本框时,它将弹出日历,不允许用户输入,当用户单击与文本框关联的“清除”图像时,它将清除文本。设置只读属性不会导致服务器端进程。我们可以使用contentEditable=“false”它将在服务器端可用您希望在客户端或服务器上验证它吗?如果是在客户机上,这是您应该做的,那么您需要编写一些JavaScript来验证控件。有几个例子说明了如何做到这一点。我不确定我是否理解你在试图做什么。您是否希望将正确的值保存到数据库中?或者你想实现一个输入掩码,这样用户只能输入日期,这只允许用户只输入整数并自动添加斜杠(/)?我想看看用户是否只能通过ajax日历输入日期,而不能在文本框中键入任何我想在服务器上验证的内容Yuriy是否正确,ReadOnly防止发回,并且“this.blur()”经常混淆cal弹出窗口。最适合我的是添加一个asp:CompareValidator集。他们可以输入文本框,但必须是有效的日期。6年后:很好的解决方案,但会导致日期选择器被视为一个对话框。在日期选择器被解雇之前,无法在页面上执行任何操作。