【发布时间】:2013-01-04 06:43:26
【问题描述】:
由于并非我们的所有用户都保证支持 HTML 5 占位符属性,我试图在 JavaScript 中为它构建一个解决方法:
$(document).ready(function() {
var searchInColumn = $('#searchInColumn').text();
$(".ui-widget-glossary-editor-column-filter").on('focus', function() {
var $this = $(this);
if ($this.val() == searchInColumn) {
$this.val('');
$this.css('color', '#444444');
}
}).on('blur', function() {
var $this = $(this);
if ($this.val() == '') {
$this.val(searchInColumn);
$this.css('color', '#c9c9c9');
}
}).blur();
});
虽然它按预期工作,但现在这当然会带来一个问题,即输入文本字段中存在实际(本地化)文本,从而触发数据表过滤器。我能否以某种方式拦截 PrimeFaces 数据表过滤,以便将此本地化占位符文本视为空字符串?
感谢您的建议和问候
帕斯卡
【问题讨论】:
-
您的
searchInColumn输入不是包含来自某个包的已本地化文本吗?显示$('#searchInColumn')代码... -
$('#searchInColumn') 包含 JSF 本地化的隐藏标签文本,是的。这使我可以在 JavaScript 中使用本地化的 JSF 文本,而无需启动单独的 AJAX 请求。问题是我想阻止数据表过滤占位符值。
-
您的意思是您的 placeholder 被解释为值并发送到服务器?如果是这样,您最好使用code.google.com/p/jq-watermark/wiki/Instructions 正确应用水印...
-
这确实成功了。我确实使用了另一个 jquery 插件(HTML5 占位符插件版本 1.01),但水印放错了位置。然而,这似乎工作正常。谢谢!
标签: java javascript jsf-2 primefaces placeholder