被 JavaScript 隐藏的必需 JSF 输入组件仍然被验证
Required JSF input component which is hidden by JavaScript is still validated
我有一个值列表,从值列表中,我想检查一些值意味着相应的文本框将显示在底部。否则,文本框将被隐藏。我已经使用javascript完成了这个过程。但我的问题是我必须使用 required=true 属性进行验证。但问题是隐藏文本框也经过验证。
列表值的素数页面:
<p:selectManyCheckbox onchange="checkValue();" value="#{volunteerBean.knowAbt}" layout="pageDirection" id="s" immediate="true" required="true" requiredMessage="Select how to konws about cv?" style="width:300px;height:170px;">
<f:selectItems value="#{volunteerBean.hearLst}" var="he" itemLabel="#{he}" itemValue="#{he}" />
<p:ajax event="change" update="msg1111" />
</p:selectManyCheckbox>
输入文本框编码:
<p:inputText style="display:none;" id="searchEngine" value="#{volunteerBean.searchEngine}"><p:watermark for="searchEngine" value="Search Engine"/>
JavaScript 用于隐藏和显示输入文本,通过选中复选框列表:
function checkValue() {
var chk = document.getElementById("volunteerForm:s:10");
if (chk1.checked) {
document.getElementById('volunteerForm:searchEngine').style.display='';
}else {
document.getElementById('volunteerForm:searchEngine').style.display='none';
}
}
我正在使用 primefaces 3.0 和 jsf 2.0。如何解决
你只更改了 HTML DOM 树,没有更改 JSF 组件树。JSF 根本不知道 HTML 元素已经隐藏在客户端中。您需要通过其 rendered
属性来显示/隐藏 JSF 组件,并将其客户机 ID 包含在<p:ajax update>
中。
<p:selectManyCheckbox ... value="#{volunteerBean.knowAbt}">
<f:selectItems value="#{volunteerBean.hearLst}" />
<p:ajax event="change" update="msg1111 searchEngine" />
</p:selectManyCheckbox>
<p:inputText id="searchEngine" ... rendered="#{volunteerBean.knowAbt.contains('valueOfItem10')}" />
其中valueOfItem10
是索引 10 处项目的确切值,就像您尝试签入 JS 时一样。请注意,我假设 knowAbt
是一个List<String>
,正如您的hearLst
所建议的那样(为此,我已经从上面的示例中删除了多余的var
、itemLabel
和itemValue
,因为它们已经是默认值)。否则,您需要改为在后备 Bean 的帮助程序方法中执行作业。
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 正在验证8个真/假复选框或复选框中的2个
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- 借助asp.net验证或java脚本对多个文本进行验证
- React组件等待所需道具进行渲染
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 如何在使用高阶组件进行身份验证时延迟检查redux存储
- 如何使用组件和自定义验证实现Angular 1 Form
- 使用普通javascript和验证的自定义web组件
- 被 JavaScript 隐藏的必需 JSF 输入组件仍然被验证
- CakePHP2.0 中的身份验证组件
- Angularjs:验证带有或不带有表单的指令组件
- 如何验证ReactJS中组件的PropTypes是相互包含的?
- Aurelia验证没有绑定到文本框组件
- React组件,在父组件中验证子组件数据
- 当openFaces组件中的validationError=true时,具体的验证错误是什么?