close

寫程式的時候, 習慣會把一些需要格式化的欄位透過其他 control 來讓 user 挑選,
但... ui 做的再好, 總是會有白目的 user,
為了避免少數 user 亂key in, 只好透過這樣的方式來避免.

例如:
有一個日期欄位, 旁邊我會放個小日曆的圖示,
user 只要用滑鼠點一下小日曆,
就可以透過 ajax 的 CalendarExtender 元件把日期輸入到 textbox,
即使做到如此, 仍然會有 user 堅持要手動 key in,
而手動 key in 的結果不是資料錯誤, 就是格式不正確,
但是 user 不認為是他們操作錯誤, 而會覺得是程式沒寫好.

上述的例子, 其實常常發生,
因此我想到的作法, 就是乾脆把 textbox 的 enable 屬性改成 false,
強迫 user 透過小日曆去挑選, 並用 javascript 檢核,
如果該欄位沒有挑選, user 就無法結束該項作業.

昨天在修改程式的時候, 突然發現這樣處理竟然會抓不到日期欄位的值,
上網 google 了一下發現找到一篇文: http://www.sunnychen.org/article.asp?id=62
作者與我有類似的情形, 只不過他的作法是開啟 textbox 的 readonly,
而我則是把 textbox 的 enable 設為 false,
但我們的用意是相同的, 就是要讓 user 無法直接修改 textbox 的值.

參考這位作者的作法, 不在一開始就設定 textbox 的 readonly 屬性,
而是改在程式裡面, 動態加入其 readonly 屬性, 即可達成我要的效果.
但是...我的好奇心又發作了,
那我可不可以動態的加入 disabled 的屬性, 來達到我要的效果呢?
測試了一下, 發現還是不行, 只好暫時乖乖的使用 readonly 了.

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 浮雲 的頭像
    浮雲

    missice's Blog

    浮雲 發表在 痞客邦 留言(1) 人氣()