Skip to main content

$app/forms

import { applyAction, deserialize, enhance } from '$app/forms';

applyAction

Cette action met à jour la propriété form de la page courante avec les données correspondantes et met à jour page.status. Dans le cas d’une erreur, elle redirige vers la page d’erreur la plus proche.

function applyAction<
	Success extends Record<string, unknown> | undefined,
	Failure extends Record<string, unknown> | undefined
>(
	result: import('@sveltejs/kit').ActionResult<
		Success,
		Failure
	>
): Promise<void>;

deserialize

Utilisez cette fonction pour désérialiser la réponse à une soumission de formulaire.

Usage:

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());
	// ...
}
function deserialize<
	Success extends Record<string, unknown> | undefined,
	Failure extends Record<string, unknown> | undefined
>(
	result: string
): import('@sveltejs/kit').ActionResult<Success, Failure>;

enhance

Cette action améliore un élément <form> sans laquelle il ne pourrait pas fonctionner en l’absence de JavaScript.

La fonction submit est appelée à la soumission avec le FormData fourni et l’action qui devrait être déclenchée. Si cancel est appelée, le formulaire ne sera pas soumis. Vous pouvez utiliser le controller d’annulation pour annuler la soumission dans le cas où une autre soumission démarré. Si une fonction est renvoyée, cette fonction est appelée avec la réponse venant du serveur. Si rien n’est renvoyé, le comportement par défaut sera utilisé.

Si cette fonction ou sa valeur de retour ne sont pas définies, enhance va

  • par défaut mettre à jour la prop form avec les données renvoyées si l’action est sur la même page que le formulaire
  • mettre à jour page.status
  • réinitialiser l’élément <form> et invalider toutes les données en cas de soumission réussie sans réponse de redirection
  • rediriger dans le cas d’une réponse de redirection
  • rediriger vers la page d’erreur la plus proche dans le cas d’une erreur inattendue

Si vous fournissez une fonction personnalisée avec un callback et souhaitez utiliser le comportement par défaut, invoquez la fonction update dans votre callback. Elle accepte un objet d’options

  • reset: false si vous ne voulez pas que les valeurs de l’élément <form> soient réinitialisées après une soumission réussie
  • invalidateAll: false si vous ne voulez pas que l’action appelle invalidateAll après la soumission
function enhance<
	Success extends Record<string, unknown> | undefined,
	Failure extends Record<string, unknown> | undefined
>(
	form_element: HTMLFormElement,
	submit?: import('@sveltejs/kit').SubmitFunction<
		Success,
		Failure
	>
): {
	destroy(): void;
};

Modifier cette page sur Github llms.txt

précédent suivant