我遇到问题required = true将应用于禁用字段的验证。jsf验证问题 - 对禁用的输入字段应用所需的字段验证
我有一个a4j:commandButton和两个下拉菜单,其中包含状态列表和表单内的国家/地区列表。这两个下拉列表都需要应用=“true”验证。状态下拉菜单启用和国家下拉列表默认情况下禁用使用标签属性禁用=“真”,如下图所示:
<h:selectOneMenu value="#{states}" required="true">
<f:selectItems>
</h:selectOneMenu>
和
<h:selectOneMenu value="#{countries}" disabled="true" required="true">
<f:selectItems>
</h:selectOneMenu>
方案1:点击A4J :commandButton没有选择状态下拉列表中的任何内容。 结果:对于状态下拉预计
现在上点击单选按钮(形式外)必填字段验证错误,状态下拉被禁用和国家下拉被使用jquery /启用javascript,如下所示:
$j('#stateDropdown').attr('disabled', 'disabled');
$j('#countryDropdown').removeAttr('disabled');
场景#2:单击a4j:commandButton,而不在国家下拉列表中选择任何内容。 结果:州和国家下拉菜单都需要字段验证错误。但是,预计只有国家/地区下拉的验证错误。
由<h:selectOneMenu>
标签上运行时生成的HTML代码:
的下拉使用JSF标签attibute禁用:<select disabled="">...</select>
没有人有任何想法,为什么JSF:<select disabled="disabled">...</select>
的下拉使用jQuery禁用正在验证由jquery禁用的字段?
嗨,我们想到了这种方法,但最让我们困扰的是:如果在ajax请求重新呈现下拉列表之前按下提交按钮,该怎么办?在这种情况下,我会得到两个验证错误。 我不确定这是真实的生产服务器上的现实吗?基本上这取决于服务器的响应时间。 这是一个很好的做法,即按照即发射ajax的要求来改变UI组件的状态 – 2010-09-23 12:39:38
在Ajax请求运行时覆盖页面或禁用提交按钮。 – BalusC 2010-09-23 12:52:37