防止清除按钮擦除隐藏字段

Posted

技术标签:

【中文标题】防止清除按钮擦除隐藏字段【英文标题】:Prevent clear button to wipe hidden fields 【发布时间】:2021-11-15 16:35:57 【问题描述】:

我们使用隐藏字段在表单中显示初始信息。 我们明确不想使用 http 请求。表单应包含通过 CRUD-API 将表单数据发送到服务器后的所有信息。

问题是清除按钮也清除了隐藏的字段,我们的初始信息也被清除了。 我也尝试设计自己的流程,但我无法让它发挥作用。

是否可以配置清除按钮或设计自定义流程以保持隐藏字段不变?

【问题讨论】:

你是如何设置这些隐藏字段的值的?您说您不想使用 HTTP 请求,所以也许这不是使用 HTTP 服务和操作,但您正在使用计算?或者也许是别的什么? -亚历克斯 我在外部(IBM i)用所需信息填充 data.xml: 1. 步骤:GET:/orbeon/fr/service/persistence/crud/$app/$form/data /$doc/data.xml 2. 步骤:在 data.xml 中的隐藏字段中填写系统信息 3. 步骤:PUT:/orbeon/fr/service/persistence/crud/$app/$form/data/$ doc/data.xml 在表单中,我使用模板参数用预填充隐藏字段中的值填充解释性文本控件。 知道了。从数据库重新加载数据是否适用于您的用例? IE。任何未保存的更改都将被“清除”,但如果用户更改了字段的值并保存,那么该更改仍然存在。 (我认为我们不能做得比这更好,否则我们如何区分“外部”放入数据中的更改和用户保存的更改,以便您可以“清除”后者?)-Alex 这会有所帮助。我会假设,用户无论如何都不想擦除他故意保存的数据。那么如何通过单击按钮来归档此数据库重新加载呢?不幸的是,我无法确定要使用的正确操作。 完美,因为从数据库中重新加载数据适用于您的用例,并且重新加载网页可以做到这一点,我在下面提供了如何使用流程执行此操作的答案。你会让我知道这对你有用! -亚历克斯 【参考方案1】:

根据您的 cmets,您所追求的似乎是重新加载以前保存在数据库中的数据。这就是重新加载当前网页所达到的效果,您可以通过定义以下过程来指示清除按钮这样做:

<property as="xs:string"  name="oxf.fr.detail.process.clear.*.*">
    navigate(uri = "javascript:window.location.reload(true)")
</property>

【讨论】:

谢谢,成功了!

以上是关于防止清除按钮擦除隐藏字段的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS:防止验证隐藏的表单字段

如何防止重复 PayPal 付款?

将网页输入字段滚动到顶部防止被软键盘隐藏

在隐藏字段中添加反 CSRF 令牌真的可以防止 CSRF 攻击吗? [复制]

你如何防止花哨的盒子的关闭按钮自动隐藏?

如何防止在 WooCommerce 中的某些国家/地区隐藏邮政编码/邮政编码字段