JSF:带输入文本字段的预填充值?
问题描述:
我试过搜索,但还没有找到答案。我看到当你在*上提出问题时,“tags”的输入字段显示灰色文本“至少有一个标签,例如... etc”。点击后,灰色文字消失,您可以开始输入您的值。如果我点击它,说明会重新出现。我怎么做?这个功能是否有开箱即用的实现,或者这是否需要自定义实现?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。
+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
谢谢!我认为这是我正在寻找的。 – Mark 2010-08-06 15:32:55