我有一个JSF 1.2表单,它由几个部分组成。
我已启用required
标记验证。
我希望能够清除表单的某个部分,其中包含必填字段,因此在“清除”按钮上我使用了immediate
标记。
现在挑战 - 当按下“清除”按钮时,自上次提交以来填写的所有值都恢复到上次提交的状态,而我希望只影响表单的某个部分。 (意思是,虽然按下的按钮是immediate
)
有办法做到这一点吗?
编辑 - 我可以在每次填写后提交一个值吗?这可能是一个解决方案。
谢谢!
答案 0 :(得分:4)
如果您想使用immediate="true"
取消按钮取一些字段,那么您还应该将immediate="true"
放在这些字段上。
如果您想要在这些字段上跳过验证,则需要将required="true"
更改为required="#{empty param['formId:cancelButtonId']}"
,以便仅在取消按钮不时才需要用来提交表格。
至于提交变更值,最好用ajax和值变更监听器来实现。要实现这一点,您需要升级到JSF 2.0或引入一个ajaxified JSF组件库。