我有一個帶有日曆圖標的文本框。點擊圖標時,彈出窗體顯示日曆控件。我已經設置了他們只能選擇星期結束日期(星期六)的地方,並且該日期顯示在文本框中。防止用戶在文本框中修改日期
我想阻止用戶編輯文本框。我試過使用只讀和啓用屬性,但不起作用。
如何防止用戶在文本框中修改日期?
(我使用該網站的淨時間跟蹤入門套件模板)
我有一個帶有日曆圖標的文本框。點擊圖標時,彈出窗體顯示日曆控件。我已經設置了他們只能選擇星期結束日期(星期六)的地方,並且該日期顯示在文本框中。防止用戶在文本框中修改日期
我想阻止用戶編輯文本框。我試過使用只讀和啓用屬性,但不起作用。
如何防止用戶在文本框中修改日期?
(我使用該網站的淨時間跟蹤入門套件模板)
你可以調用JavaScript blur()
在onfocus
事件。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtStartDate.Attributes.Add("readonly", "readonly");
txtEndDate.Attributes.Add("readonly", "readonly");
}
}
它的工作原理,它是非JavaScript的依賴。
我知道這是一個黑客,但你總是可以保存選定的日期作爲變量。然後使用在值更改時調用的actionlistener。如果日期無效(即不是一週結束日期),則用已保存的變量替換文本框。否則,如果日期是值,則替換變量,以便用戶更改它。
嘗試使用標籤,而不是樣式來看起來像一個文本框。您也可以將文本框的啓用屬性設置爲false
,但這可能對您無效,具體取決於您正在做什麼。替代方案可能使用一些JS來防止對值的更改,但這可能會非常複雜。從服務器端設置文本框爲只讀屬性
<asp:TextBox onfocus="blur();" ... />
我這樣做:
如果用戶不應該編輯文本框中的文本,則不應該使用文本框。 使用標籤。
我不同意。我的普通用戶會因爲標籤而迷路,而使用文本框,至少他們知道如果通過將光標懸停在光標上來改變光標,可以點擊它(這將觸發日曆彈出窗口)。 – rebelliard 2010-08-04 21:35:24
我爲此使用日曆圖標並將文本框保留爲可編輯狀態。 – Jeroen 2010-08-04 22:29:40
但是複製和粘貼呢? – w69rdy 2010-08-04 16:36:25
@ w69rdy - 見我最新的解決方案。 – dcp 2010-08-04 16:37:22