提问人:Stef-Verniers 提问时间:11/17/2023 最后编辑:Stef-Verniers 更新时间:11/17/2023 访问量:36
失败消息未显示在首页上 - SvelteKit
Fail message not showing on frontpage - SvelteKit
问:
我是 SvelteKit 的新手。
我一直在寻找一个关于表单验证的 YouTube 教程,我遇到了这个教程。https://www.youtube.com/watch?v=BTI5oZM3buo
一切都很顺利,但是当我想向前端传递一条错误消息说密码不匹配时,我在控制台中收到了错误,但该消息没有显示给用户看。
代码有点基础且易于理解,所以即使是我,Svelte 的新手,也看不出代码有什么问题。
谁能帮我?提前致谢!
我的表格:
<script>
import { useForm, validators, HintGroup, Hint, email, required} from "svelte-use-form";
// @ts-ignore
import Logo from "/src/components/Logo.svelte";
export let form;
</script>
<form method="POST" action="/register?/create">
{#if form?.error}
<div class="error">
<p>{form.error}</p>
</div>
{/if}
<label for="email">Full name</label>
<input type="text" name="name" required />
<label for="email">Email</label>
<input type="email" name="email" required />
<label for="password">Wachtwoord</label>
<input type="password" name="password" required />
<label for="password">Bevestig wachtwoord</label>
<input type="password" name="requirePassword" required />
<button>Login</button>
<p>Nog geen account?<a href="google.com">Registreer hier</a></p>
</form>
我的 +page.server.js
// @ts-nocheck
import { fail } from '@sveltejs/kit';
export const actions = {
create: async({ request }) => {
const data = await request.formData();
const username = data.get('name')
const email = data.get('email')
const password = data.get('password')
const confirmed = data.get('requirePassword')
console.log({username, email, password, confirmed})
if (password !== confirmed) {
return fail(422, {
error: 'Wachtwoorden komen niet met elkaar overeen'
});
}
}
}
答:
0赞
Stef-Verniers
11/17/2023
#1
我找到了解决方案!
我完全忘记了在元素上添加 display:none,所以即使会出现错误,它也会被阻止显示。
评论
0赞
easleyfixed
11/17/2023
您可能知道,但您可以将其切换为 display:block,以便在需要消息时显示它。
0赞
Stef-Verniers
11/17/2023
这甚至有必要吗..?它在没有显示的情况下工作正常:块也
0赞
easleyfixed
11/17/2023
不完全是,但是当它设置为 display:none 时,它不会显示任何内容,或者 display:block 会显示某些内容。因此,当它有一条消息要显示时,它需要显示以阻止,但它可能你已经在这样做了,只是让你意识到这个过程,就像它在 javascript 中的任何地方一样用于类似的事情。
评论
form
export let form
增强
操作并从操作中删除。/register
action="?/create" use:enhance
/register