【问题标题】:Why can't you add a EditorExit Handler to a DynamicForm or FormItem?为什么不能将 EditorExit 处理程序添加到 DynamicForm 或 FormItem?
【发布时间】:2023-03-10 07:45:01
【问题描述】:

此处理程序仅存在于 ListGrid。

但是,如果您查看 DynamicForm.setValidateOnExit() 的文档,它会说:

如果为真,表单项将在每个项的“editorExit”时被验证 处理程序被触发,以及当整个表单被提交或 验证。

注意这个属性也可以在item处设置 级别以启用更精细的粒度验证以响应用户 交互 - 如果任一级别为真,验证将在 编辑器退出。

那么我们如何将 EditorExitHandler 添加到 DynamicForm 或 FormItem 中呢?

编辑:

我想在表单下方创建一个错误面板以动态显示所有错误。每个 FormITem 都有可能在退出时进行验证,但我不知道如何捕获此验证事件以检查是否应更新错误面板。

【问题讨论】:

  • 也许您应该向我们描述您想要实现的目标,我们可以讨论如何使用 smartGWT 的 API 上已经提供的功能来支持它。只是为了语义 - 但是,仍然没有 EditorExitHandler 存在 - “editoExit”指的是 FormItems 而不是 DynamicForm 并且它被引用。

标签: smartgwt listgrid dynamicform


【解决方案1】:

有一种方法form.getErrors()form.showError(true)。通过这个你可以实现。但为此,您还需要为每个字段设置验证器。

TextItem name = new TextItem("name", "Name");
name.setRequired(true);
name.setRequiredMessage("Please specify name of the Table");

NTRegExpValidator nameValidator = new NTRegExpValidator("(^[a-zA-Z0-9][\\w\\s.()_-]+)$","It should start with alphabets and can have alphanumeric values ( )_-. and space.");

name.setValidators(nameValidator);
name.addKeyUpFieldHandler(new KeyUpHandler){
    form.getErrors();
    form.showErrror(true);
});

DynamicForm form = new DynamicForm();
form.setField(name);

【讨论】:

  • 我不想按原样显示错误。我想在我创建的面板中显示它们。另外,不需要 KeyUpFieldHAndler,因为已经有一个功能可以验证我不想使用的更改,因为它有问题。我只想捕捉说“嘿,我已通过验证”的事件
  • 大家不要再为这个答案投票了。因为它不回答问题!连答主都承认了
【解决方案2】:

经过一番研究,我仍然没有找到令人信服的答案。我想它必须是开发要求

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    相关资源
    最近更新 更多