在我的表单上,我有一个 TextBox 控件,其 TextMode 属性设置为“日期”,并且(为了完整性)我所在地区的正常日期格式是“dd/MM/yyyy”(英国):
<asp:TextBox ID="tbFrom" runat="server" TextMode="Date" AutoPostBack="True" OnTextChanged="DatesChanged"></asp:TextBox>
当用户更改日期时,我想在后面的代码中执行某些操作,因此需要 AutoPostback 和 OnTextChanged 属性设置。
现在,当用户使用日历弹出控件选择日期时,此功能可以正常工作,但当用户手动输入日期时,控件会在按要求完全输入日期之前回发。
例如,用户输入“01”表示日,“01”表示月,然后开始输入“2017”表示年份。一旦用户在年份部分键入“2”,就会触发 TextChanged 事件,控件会回发(完全有效的)日期“01/01/0002”,然后控件就会失去焦点。
我知道,从技术上讲,这是正常工作的,但它会导致用户无法完成所需的日期,除非他们以非常具体的方式输入各个部分(年、日、月)实例)。
我的直接问题是“是否可以禁用此控件的手动日期输入?”。不过,我也欢迎任何有关如何保留手动输入但以允许用户首先输入完整日期的方式处理回发的建议。
非常感谢。
最佳答案
是的,这可以通过使用来完成
onkeypress="返回 false;"onpaste="返回 false"
将它们添加到您的文本框标记中,如下所示
<asp:TextBox ID="tbFrom" runat="server" onkeypress="return false;"
onpaste="return false" TextMode="Date" AutoPostBack="True"
OnTextChanged="DatesChanged"></asp:TextBox>
关于javascript - ASP.NET 4.5 文本框文本模式 'Date' 回发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736694/