通常,如果是多页表单,我会存储表单的所有值并向服务器发送 POST 请求。但是如果我的表格中有这样的表格怎么办+page.svelte
:
<script lang="ts">
import {enhance} from "$app/forms";
let page: number = 1;
const nextPage = () => {
page++;
}
const prevPage = () => {
page--;
}
</script>
<form method="POST" use:enhance>
{#if page === 1}
<label for="name">Name</label>
<input type="text" id="name" name="name" value="John Doe">
{:else if page === 2}
<label for="email">Email</label>
<input type="email" id="email" name="email">
{:else if page === 3}
<label for="password">Password</label>
<input type="password" id="password" name="password">
<button type="submit">Register</button>
{:else}
<p>Thank you for registering!</p>
{/if}
<button type="button" on:click={prevPage} disabled={page === 1}>Previous</button>
<button type="button" on:click={nextPage} disabled={page === 4}>Next</button>
</form>
我想将这些表单数据发送到服务器内部,+page.server.ts
以便服务器记录所有值(我可以稍后使用这些值,例如身份验证或其他东西)
+page.server.ts
文件:
export const actions = {
default: async ({request}: any) => {
const formData = await request.formData();
const name = formData.get('name');
const email = formData.get('email');
const password = formData.get('password');
console.log(name, email, password)
}
}
提交后,服务器正在打印null null ezpass
假设名称 = John,电子邮件 = [email protected],密码 = ezpass)
有什么方法可以像这样将所有信息发送到 +page.server.ts 吗?或者我应该采取另一种方式,即存储所有内容并在 +page.svelte 中发出 POST 请求(我不想这样做,我想使用表单操作)。