PrimeFaces 选择器 (PFS) 使用属性包含选择器 [name*=”value”]

Posted

技术标签:

【中文标题】PrimeFaces 选择器 (PFS) 使用属性包含选择器 [name*=”value”]【英文标题】:PrimeFaces Selectors (PFS) using Attribute Contains Selector [name*=”value”] 【发布时间】:2016-11-30 00:15:06 【问题描述】:

我正在尝试使用PFSprocessing/updating 选择元素。如果我使用它,它可以正常工作。 styleClass 用于选择。

<p:commandButton actionListener="#testBean.testAction" value="Submit test"
    process="@this @(.processStyleClass)"
/>

但是当使用属性包含选择器时我无法让它工作(这里使用 maxlength 作为示例):

<p:inputText value="#testBean.test"
    maxlength="4"/>

<p:commandButton actionListener="#testBean.testAction" 
    value="Submit test"
    process="@this @([maxlength*='4'])"/>

但是当我直接在控制台中使用选择器时,我可以选择输入字段。

您有任何按包含PFS 的属性进行选择的工作示例吗?

亲切的问候, 何塞

Primefaces 5.1,Mojarra 2.2.7

【问题讨论】:

【参考方案1】:

在属性选择器中使用引号会导致问题,因为它会按如下方式呈现命令按钮(省略不相关部分):

<button id="mainForm:j_idt21"      
    onclick="PrimeFaces.ab(s:'mainForm:j_idt21',p:'mainForm:j_idt21 @([maxlength*='4'])');return false;" 
    type="submit">Submit test
</button>

删除选择器中的单引号,以便为进程和更新属性提供正确的渲染和工作选择器:

<p:inputText value="#testBean.test"
    maxlength="4"/>

<p:commandButton actionListener="#testBean.testAction" 
    value="Submit test"
    process="@this @([maxlength*=4])"/>

【讨论】:

以上是关于PrimeFaces 选择器 (PFS) 使用属性包含选择器 [name*=”value”]的主要内容,如果未能解决你的问题,请参考以下文章

html Primefaces选择器

ES6 class(基本语法+方法)

如何使用jQuery或jqPlot自定义PrimeFaces条形图属性

值更改侦听器在 primefaces 日历中不起作用

在primefaces autocomplete事件中将值重置为null

覆盖自定义属性文件中的Primefaces消息