当前位置: 首页 > 知识库问答 >
问题:

Wicket-Update模型使用ajax无需验证

韦高谊
2023-03-14

我有一个带有几个布局复选框的表单:“[*]类型为a的项(计数:2)”。每个这样的复选框都附加了一个链接(在上面的布局中为“count:2”),该链接显示附加到相应复选框的列表中的项目数。该链接打开另一个表单,用于向列表中添加项。如果用户选中了这样一个复选框,链接就会被启用,她可以添加项目。但是,如果选中复选框并且没有添加任何项,则提交表单时必须显示错误。

我尝试使用AjaxCheckbox来启用/禁用该链接,它工作得很好,直到我向该复选框添加了一个验证器(以检查上面的条件)。问题是:当从复选框发送ajax请求时,将调用验证器,验证失败,因为列表中还没有项。

共有1个答案

段坚
2023-03-14

您可以向窗体中添加一个IFormValidator,它仅在提交整个窗体时才会被调用:

public class ItemsValidator extends AbstractFormValidator
{

  @Override
  public FormComponent<?>[] getDependentFormComponents()
  {
    return new FormComponent[]{checkbox};
  }

  @Override
  public void validate(Form<?> form)
  {
    if (checkbox.getConvertedInput() && items.isEmpty())
    {
      error(checkbox);
    }
  }
}
 类似资料:
  • 我使用openvino的person-detection-action-recognition-0005预训练模型来检测人和他们的行为。 https://docs.openvinotoolkit.org/latest/_models_intel_person_detection_action_recognition_0005_description_person_detection_action_

  • 在一个集合中对业务规则的验证是通过一致性问题的AR进行的。如何验证需要订单集合之外的数据的业务规则? 我也在使用CQRS方法,我认为使用ReadModel来获取验证业务规则所需的数据并不是一个糟糕的选择...您认为呢?

  • 我可以接收82个XML结构中的一个,每个结构都包含一个不在名称空间中的根,还包含几个xmlns属性,其中第一个属性为对象的模式定义一个urn,其余的(定义名称空间)也包含公共对象的urn。 Java中的模式感知解析假设您在开始解析之前知道该模式,但我不知道它,直到我在未经验证的情况下加载了XML并提取了根,此时我可以使用正确的模式再次加载它,或者,我可以找到一些方法来访问根目录中的xmlns元素,

  • 问题内容: 我正在尝试将AutoCompleteTextField与自定义类一起用作通用类型,并添加AjaxFormComponentUpdatingBehavior。我的意思是我想要一个 然后添加一个AjaxFormComponentUpdatingBehavior: 问题是由于某种原因,添加该行为会使表单尝试使用String设置模型对象(即使AutoCompleteTextField具有Som

  • 问题内容: 我正在编写一个脚本,将一些模型对象导入到我的django应用程序使用的数据库中。过去,我通过运行然后解决了这个问题。我敢肯定有更好的方法。我希望能够使用在HD的任何位置调用脚本,并且在该脚本的前几行中,它将执行任何必需的导入/其他操作,以便它可以访问模型对象并像运行时一样运行使用。 要实现此目的,我需要添加什么内容? 编辑: 基于@Melug的答案,此外还动态设置了Python路径以解

  • Enforce模块用于验证数据。对于使用以前的验证器的用户,还可以继续使用,它们中的一部分整合到了enforce,剩余部分还没有。推荐你开始使用orm.enforce来取代orm.validators。可用的验证器的列表请见node-enforce。 unique验证器也构建于ORM中,可以这样来访问: name: orm.enforce.unique("name already taken!")