【问题标题】:wicket form changes are not visible when setDefaultFormProcessing(true)当 setDefaultFormProcessing(true) 时检票口表单更改不可见
【发布时间】:2017-04-20 06:00:59
【问题描述】:

我在检票口有一个表格,它有两个按钮。我希望对我已经做过的字段进行验证(如果它们为空或不为空)。现在我希望第二个按钮不要进行此验证。我见过几个例子,人们使用setDefaultFormProcessing() 方法,这是检票口中按钮类的方法。

但是,当我使用此方法时,我的表单似乎也忽略了表单字段中所做的更改。

知道我实际上是如何绕过验证但仍然能够看到我的表单中的更改吗??

谢谢!!

【问题讨论】:

  • 我相信人们一看到你的代码,你就会有很多想法。
  • 你能分享你的代码以便我们解决这个问题吗?

标签: java forms button wicket


【解决方案1】:

这是已定义的行为。如果数据无效,则无论如何都无法更新模型。考虑一个示例,当您有一个日期字段并且您在那里键入不是有效日期的“99/9/YYYYY”时,因此检票口没有机会绕过验证和更新模型。唯一的机会是将输入数据保留为字符串并为您提供一个选项,即如何通过您自己的实现来转换或更新模型。

如果您有对表单组件的引用,则可以调用 updateModel()。

http://apache-wicket.1842946.n4.nabble.com/Turn-off-form-validation-td1877661.html

并检查 API 文档中的 FormComponent,它是所有字段和其他表单组件的基类。 https://ci.apache.org/projects/wicket/apidocs/7.x/org/apache/wicket/markup/html/form/FormComponent.html

【讨论】:

  • 基本上我想在我的表单中添加一个自动完成按钮,当按下按钮时,我会在其中获取用户提供的输入,并相应地完成其余字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
相关资源
最近更新 更多