在提交时模糊任何重点领域 |反应最终形式

Blur Any Focused Field onSubmit | React Final Form

这可能是一个错误,但我想在打开 GitHub 问题之前先在这里 post 看看整个社区是否有建议,或者是否有人可以打电话给我做错了。

我想在提交时模糊任何重点领域。简单的。

根据文档,onSubmit 函数作为参数传递 (values, form)form api 包括获取所有已注册字段的方法,以及 应该 模糊任何字段。这是代码:

const onSubmit = async (values, form) => {
  const fieldsNames = form.getRegisteredFields();
  fieldsNames.forEach(name => form.blur(name));

  await sleep(300);
  window.alert(JSON.stringify(values, 0, 2));
};

我直接从 FinalForms 文档中 fork 了基本示例,并添加了这两行以查看我是否可以让他们的示例工作,但它没有。要进行测试,只需在名字字段中输入,然后按回车键。该领域保持专注..

CodeSandbox Demo Here

Final Form: FormApi Docs

感谢阅读!

form.blur() 是您告诉 Final Form 字段已模糊的方式(它将字段的状态标记为模糊)。它更像是一个倾听者。要实际 强制性地 模糊字段,您需要引用 DOM 元素。

类似于getElementById('myField').blur()