我有一个文本框,旁边有一个日历图标。单击图标时,弹出窗体将显示日历控件。我设置了它们只能选择周末日期(星期六),并且该日期显示在文本框中。
我想阻止用户编辑文本框。我尝试过使用readonly和enabled属性,但这不起作用。
如何阻止用户修改文本框中的日期?
(我正在使用网站的.Net时间跟踪器入门套件模板)
答案 0 :(得分:2)
我是通过将文本框设置为服务器端的只读属性来实现此目的。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtStartDate.Attributes.Add("readonly", "readonly");
txtEndDate.Attributes.Add("readonly", "readonly");
}
}
它有效,并且它不依赖于JavaScript。
答案 1 :(得分:1)
尝试使用Label,样式看起来像TextBox。您还可以将TextBox的Enabled属性设置为false
,但这可能对您无效,具体取决于您正在执行的操作。替代方案可能是使用一些JS来防止对值的更改,但这可能会非常复杂。
答案 2 :(得分:0)
我知道这是一个黑客攻击,但您可以随时将所选日期保存为变量。然后使用在更改值时调用的actionlistener。如果日期无效(即不是星期结束日期),则将文本框替换为已保存的变量。否则,如果日期是值,则替换变量,如果用户更改它。
答案 3 :(得分:0)
您可以在blur()
事件中调用javascript onfocus
:
<asp:TextBox onfocus="blur();" ... />
答案 4 :(得分:0)
如果用户不应该编辑文本框中的文本,则不应使用文本框。 使用标签。