我試過搜索,但還沒有找到答案。我看到當你在stackoverflow上提出問題時,「tags」的輸入字段顯示灰色文本「至少有一個標籤,例如... etc」。點擊後,灰色文字消失,您可以開始輸入您的值。如果我點擊它,說明會重新出現。我怎麼做?這個功能是否有開箱即用的實現,或者這是否需要自定義實現?JSF:帶輸入文本字段的預填充值?
謝謝!
我試過搜索,但還沒有找到答案。我看到當你在stackoverflow上提出問題時,「tags」的輸入字段顯示灰色文本「至少有一個標籤,例如... etc」。點擊後,灰色文字消失,您可以開始輸入您的值。如果我點擊它,說明會重新出現。我怎麼做?這個功能是否有開箱即用的實現,或者這是否需要自定義實現?JSF:帶輸入文本字段的預填充值?
謝謝!
兩個提供這種功能的JSF組件庫浮現在腦海:
這是輸入字段上的模糊/焦點JavaScript事件處理程序。在jQuery中它會像下面這樣:
HTML
<input type="text" name="your-input" id="your-input" title="Enter a value"/>
jQuery的
$('#your-input').focus(function(){
var defaultVal = $(this).attr('title');
if($(this).val() == defaultVal)
$(this).val('');
});
$('#your-input').blur(function(){
var defaultVal = $(this).attr('title');
if($(this).val() == '')
$(this).val(defaultVal);
});
$('#your-input').trigger('blur');
它從輸入的title
屬性採用默認值,並將焦點的價值並根據輸入的當前值模糊事件。最後的trigger()
調用是在頁面加載時正確設置輸入的值。
你可以看到它in action here。
不知道這對我的應用程序是否可行,但謝謝您的回答。 – Mark 2010-08-06 15:30:44
最簡單的例子是
window.onload = function() {
var txtField = document.getElementById('textField');
if(!txtField.value) {
txtField.value = 'Default Text';
}
}
<h:inputText id="txtField" value="#{bean.txtField}"
onfocus="window.default=this.value; this.value='';"
onblur="if(!this.value) { this.value = window.default; }"/>
我在任何情況下,我會建議將window.onload切換到任何dom就緒功能,如
document.observe('dom:loaded', function(){}); // Prototype
$(document).ready(function(){}); // jQuery
謝謝!我認爲這是我正在尋找的。 – Mark 2010-08-06 15:32:55