JSF:带输入文本字段的预填充值?

JSF:带输入文本字段的预填充值?

问题描述:

我试过搜索,但还没有找到答案。我看到当你在*上提出问题时,“tags”的输入字段显示灰色文本“至少有一个标签,例如... etc”。点击后,灰色文字消失,您可以开始输入您的值。如果我点击它,说明会重新出现。我怎么做?这个功能是否有开箱即用的实现,或者这是否需要自定义实现?JSF:带输入文本字段的预填充值?

谢谢!

两个提供这种功能的JSF组件库浮现在脑海:

+0

谢谢!我认为这是我正在寻找的。 – Mark 2010-08-06 15:32:55

这是输入字段上的模糊/焦点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

+0

不知道这对我的应用程序是否可行,但谢谢您的回答。 – 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