我在实现一个机制来检查JSF表单中的强制输入字段时遇到问题,使用PrimeFaces在提交表单之前由用户填写或不填写 .
我在inputTexts中使用了required = "true"机制来检查和触发自定义消息,然后提交用户输入一些值到必填字段,例如:
<p:inputText id="exp" required="true" requiredMessage="#{lang.dailyCurrencyValues_exp_req_txt}" value="#{marketDataDefinitionProcesses.currencyType.explanation}"/>
如果用户成功完成提交并留在同一页面,我的老板要求我重置页面 . 为了实现这一点,我在提交按钮上使用了oncomplete = "document.myForm.reset();",该按钮成功地重置了表单和表单中的所有字段 .
但是,如果用户未输入所有必填字段并按下提交按钮,则表单将给出在requiredMessage中指定的消息,并重置表单及其中的所有元素 . 如果提交失败,我想阻止这种情况,重置值 . 我尝试实现一个JavaScript函数,如果未填充必填字段,则尝试阻止重置表单 . 但是,我再次遇到有关检索表单中元素值的问题 .
<p:calendar id="dateValueId" value="#{marketDataDefinitionProcesses.currencyType.dateValue}" pattern="dd.MM.yyyy" required="true" requiredMessage="#{lang.dailyCurrencyValues_dateValueId_req_txt}"/>
我没有成功通过JavaScript检索日历元素值 .
而现在,我正在等待你的意见来解决这个问题 . 我认为,有关使用JavaScript或任何JSF / PrimeFaces元素检索日历值的解决方案是检索有关所需= "true"字段/是否已填充的信息的选项 .
此致...
法鲁克
3 回答
发布后将重定向发送到同一视图 . 它将创建一个全新的请求,其中所有输入值为空或至少为其在请求/视图范围bean中定义的默认值 .
我认为你可以通过PrimeFaces的RequestContext实现你的目标:
也许你可以尝试这种方式
当用户提交数据时,页面需要一个新实例并使用ReuqestContext更新表单或您需要的部分