成功提交后是否可以不重置增强型 SvelteKit 表单?

Tho*_*lle 5 svelte sveltekit

我有以下增强的 SvelteKit 表单:

<script>
  import { enhance } from '$app/forms';
</script>

<form method="POST" use:enhance>
  <input name="name" />
</form>
Run Code Online (Sandbox Code Playgroud)

成功提交后,表单将被重置。有什么办法可以避免这种情况吗?

Tho*_*lle 10

enhance您可以通过提供一个 来进一步自定义操作的行为submit function。该函数又可以返回一个回调,该回调在提交表单时调用。

此回调的第一个参数中的属性update是一个函数,如果未设置此回调,将触发将触发的逻辑,并且它采用一个选项reset,允许您在成功提交后不重置表单。

<script>
  import { enhance } from '$app/forms';

  function handleSubmit() {
    // ...

    return async ({ update }) => {
      await update({ reset: false });
    };
  }
</script>

<form method="POST" use:enhance={handleSubmit}>
  <input name="name" />
</form>
Run Code Online (Sandbox Code Playgroud)