JSF 数据表过滤:占位符

Posted

技术标签:

【中文标题】JSF 数据表过滤:占位符【英文标题】:JSF datatable filtering: Placeholders 【发布时间】: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),但水印放错了位置。然而,这似乎工作正常。谢谢! 【参考方案1】:

你的意思是你的占位符被解释为值并发送到服务器?

如果是这样,您最好使用jq-watermark 正确应用水印...

【讨论】:

以上是关于JSF 数据表过滤:占位符的主要内容,如果未能解决你的问题,请参考以下文章

如何将占位符属性添加到 JSF 输入组件?

使用占位符创建自定义注释?

如何在占位符中添加图标

在 DataTables 列过滤选择上设置占位符

AngularJS - 过滤器空结果的占位符

使用 Spring Boot 进行 Maven 资源过滤:无法解析占位符