```js // @noErrors import { applyAction, deserialize, enhance } from '$app/forms'; ``` ## 应用动作 此操作使用给定数据更新当前页面的 `表单` 属性和更新 `page.status`。如果发生错误,将重定向到最近的错误页面。 ```dts function applyAction< Success extends Record | undefined, Failure extends Record | undefined >( result: import('@sveltejs/kit').ActionResult< Success, Failure > ): Promise; ``` ## 反序列化 使用此函数反序列化表单提交的响应。用法: ```js // @errors: 7031 import { deserialize } from '$app/forms'; async function handleSubmit(event) { const response = await fetch('/form?/action', { method: 'POST', body: new FormData(event.target) }); const result = deserialize(await response.text()); // ... } ``` ```dts function deserialize< Success extends Record | undefined, Failure extends Record | undefined >( result: string ): import('@sveltejs/kit').ActionResult; ``` ## 增强 此操作增强了一个`
`元素,否则该元素在没有 JavaScript 的情况下也能正常工作。 提交时,将使用给定的 FormData 和应触发的`action`调用`submit`函数。如果调用`cancel`,则表单将不会提交。如果另一个开始,可以使用 abort `controller`取消提交。如果返回一个函数,则该函数将使用来自服务器的响应被调用。如果没有返回任何内容,将使用回退方案。 如果此函数或其返回值未设置,则 * 回退到更新同一页面上表单的 `prop`,如果操作在该表单页面上 * 更新 `page.status` * 重置 `` 元素,并在无重定向响应的成功提交情况下使所有数据无效 * 重定向情况下的重定向响应 * 重定向到最近的错误页面,以处理意外错误 如果您提供了一个带有回调的自定义函数并希望使用默认行为,请在您的回调中调用`update`。它接受一个选项对象 * `重置:否`如果您不希望在成功提交后重置 `` 的值 * `invalidateAll: false` 如果您不想在提交后调用 `invalidateAll` ```dts function enhance< Success extends Record | undefined, Failure extends Record | undefined >( form_element: HTMLFormElement, submit?: import('@sveltejs/kit').SubmitFunction< Success, Failure > ): { destroy(): void; }; ```