一些用戶體驗好的表單都會在文本框里設置輸入提示,文本框獲取焦點時,提示內容消息,如果未輸入,失去焦點時又會出現提示。
網上找到一個比較好用的控件jquery.inputDefault.js
使用方法:
1、在jsp頁面引用jquery.inputDefault.js
<script src="/js/jquery.inputDefault.js" type="text/javascript"></script>
2、需要為控件增加一個自定義屬性fs,fs的值就是提示內容。
<input type="text" id="key" name="key" fs="請輸入"></input>
3、然后在jsp文件中增加js調用代碼:
$(function() { $('[fs]').inputDefault(); });
這個控件的實現實質上是在文本框上覆蓋了一層<label>標簽,通過文本框的onblur和onfocus事件來控制lable標簽的顯示與隱藏。
不過這個控件有一個弱點就是如果是動態表單,會造成標簽錯位,即提示內容與文本框錯位。
於是自己也實現了一個input.emptyText.js
使用方法:
1、在jsp頁面引用input.emptyText.js
<script type="text/javascript" src="/js/input.emptyText.js"></script>
2、需要為控件增加一個自定義屬性emptyText,emptyText的值就是提示內容。
<input id="title" name="title" emptyText="請輸入" />
3、然后在jsp文件中增加js調用代碼:
$('[emptyText]').emptyText();
這種方法實際上是通過input控件的onfocus和onblur事件來控制控件的樣式,onfocus事件觸發時,判斷控件的值是否是提示值,是則清空。onblur事件中,判斷輸入內容是否為空,為空則置控件的值為提示內容。
這種方法也有一個弱點,無法輸入與提示內容相同的值,且提交時要自己寫代碼去掉控件的提示內容。