禁用键盘输入到 ASP 文本框

gh0*_*0st 1 c# asp.net textbox

我有一个带有 ajaxToolkit:calendarextender 的文本框。
我也有一个OnTextChanged="do something"带有AutoPostBack=true.

我只希望我的用户能够使用日历扩展程序将数据输入到文本框中。

我试过将readonly文本框上的属性设置为 true。这仅在文本框中存在文本时才有效(如果我textbox.text = "such and such"然后通过日历扩展程序输入)。

如果我尝试通过单击文本框并在日历扩展器中选择一个日期来选择一个日期,则输入的任何内容都会由于autopostbackOnTextChanged事件而立即被清除。我得到这个例外:

Exception was thrown at line 3169, column 13 in http://localhost:44994/ScriptResource.axd?d=Es_vqsdtlYssgAF4A3XSWnRVXoRhHI0Nw5kbnX4TQidZ-ER24J-iO0awsG5JH1rtQZR_iEqhZs7sdOBQ9bRTWyylEaGjH7fv-s8DBZ9g2dBrQRgBCGkgUkMcfnp1eLLpQ46PuRCK6kw9bzcz5Laedpe2sZMPd6VRGBt-E7Jq3Hi6WSFYwQmlvlft0Bho70p20&t=7b689585
0x800a138f - JavaScript runtime error: Unable to get property 'AbbreviatedMonthNames' of undefined or null reference
Run Code Online (Sandbox Code Playgroud)

如何禁用通过键盘进入文本框而只允许通过calendarextender?

Yur*_*ter 5

将属性添加onkeydown="return false;"到文本框。这样用户将无法输入任何内容,但点击仍然有效。

您可能还想添加onpaste ="return false;"以防止复制/粘贴文本。