ASP.NET 4.5 Textbox Textmode' Date'回发问题

时间:2017-05-02 11:25:34

标签: javascript c# asp.net date textbox

在我的表单上,我有一个TextBox控件,TextMode属性设置为' Date'和(为了完整性)我所在地区的正常日期格式是&#ddd / MM / yyyy' (UK):

<asp:TextBox ID="tbFrom" runat="server" TextMode="Date" AutoPostBack="True" OnTextChanged="DatesChanged"></asp:TextBox>

当用户更改日期时,我想在后面的代码中执行某些操作,因此AutoPostback和OnTextChanged属性设置。

现在,当用户使用日历弹出控件选择日期但用户手动输入日期时,控件将在根据需要完全输入日期之前回发。

例如,用户输入&#39; 01&#39;一天,&#39; 01&#39;一个月然后开始进入2017年&#39;这一年。一旦用户键入&#39; 2&#39;在年份部分,TextChanged事件被触发,控件以(完全有效)日期&01,01 / 0002&#39;然后控制失去了焦点。

据我所知,从技术上讲,这是正常的,但它会使用户无法完成所需的日期,除非他们以非常具体的方式进入各个部分(年,日,月)实例)。

我的直接问题是&#39; 是否可以禁用此控件的手动日期条目?&#39;。但是,我也欢迎任何有关如何保留手动输入但以允许用户首先输入完整日期的方式处理回发的建议。

非常感谢。

1 个答案:

答案 0 :(得分:2)

是的,可以使用

完成此操作

onkeypress="return false;" onpaste="return false"

将它们添加到文本框标记中,如下所示

        <asp:TextBox ID="tbFrom" runat="server" onkeypress="return false;" 
    onpaste="return false" TextMode="Date" AutoPostBack="True" 
OnTextChanged="DatesChanged"></asp:TextBox>