You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Chrome中启用asp:TextBox的Backspace、Delete键功能

解决Chrome中ASP.NET日期输入框无法使用Backspace/Delete键的问题

看起来你遇到了Chrome浏览器下ASP.NET日期输入控件的按键兼容性问题,这种情况通常和客户端脚本冲突、控件版本兼容性或者自定义输入限制逻辑有关。下面是几个可行的解决方案:

1. 检查并修复自定义输入限制脚本

如果你的页面中有针对这个文本框的自定义keydown/keypress事件处理(比如限制只能输入数字和横杠),很可能是脚本没有正确允许Backspace(键码8)和Delete(键码46)按键。

你可以修改脚本,明确将这两个按键加入允许列表:

function validateDateInput(e) {
    const allowedKeys = [8, 46, 9, 37, 38, 39, 40]; // Backspace、Delete、Tab、方向键
    const key = e.keyCode || e.which;
    
    // 如果是允许的控制键,直接放行
    if (allowedKeys.includes(key)) {
        return true;
    }
    
    // 只允许输入数字和横杠
    const inputChar = String.fromCharCode(key);
    return /[\d-]/.test(inputChar);
}

然后绑定到文本框的OnKeyDown事件:

<asp:TextBox ID="txtStartDate" CssClass="txtStartDate" runat="server" MaxLength="10" 
             OnKeyDown="return validateDateInput(event);" />

2. 升级AJAX Control Toolkit版本

你使用的cc1:CalendarExtender属于AJAX Control Toolkit,旧版本的控件在Chrome等现代浏览器中可能存在兼容性问题。建议升级到最新稳定版的AJAX Control Toolkit,新版本通常修复了这类浏览器兼容性问题。

3. 暂时禁用客户端验证排查冲突

你的验证控件都开启了EnableClientScript="True",有可能是客户端验证脚本和Chrome的事件处理机制冲突。可以临时将验证控件的EnableClientScript设为False,测试退格/删除键是否恢复正常:

<asp:RequiredFieldValidator ID="startDateRequiredFieldValidator" runat="server" 
                            ValidationGroup="Dates" ControlToValidate="txtStartDate" 
                            EnableClientScript="False" Display="None" Text="*" 
                            ErrorMessage="Start date is required."/>

如果禁用后按键正常,说明是验证控件的客户端脚本问题,可以尝试更换验证逻辑,或者使用HTML5的日期输入类型替代(<input type="date" />),原生控件在各浏览器兼容性更好。

4. 检查CSS样式影响

偶尔CSS的pointer-events: none或者其他禁用交互的样式会导致按键失效,检查txtStartDate类的CSS定义,确保没有阻止文本框的正常交互:

.txtStartDate {
    /* 确保没有以下类似属性 */
    /* pointer-events: none; */
    /* user-select: none; */
}

内容的提问来源于stack exchange,提问作者user9161162

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:55:17