Svelte 里怎么用事件修饰符阻止表单提交刷新页面?
我在 Svelte 里写了个表单,点击提交按钮时页面总是刷新,试了加 on:submit|preventDefault 但好像没生效,是不是写法有问题?
下面是我的代码:
<form on:submit|preventDefault={handleSubmit}>
<input type="text" bind:value={name} />
<button type="submit">提交</button>
</form>
明明加了 preventDefault 修饰符,为什么还是跳转刷新?是不是还要在 handleSubmit 里手动调 preventDefault()?
on:submit|preventDefault而不是on:submit|preventDefault=这样的形式。你不需要在handleSubmit函数中手动调用preventDefault(),因为修饰符已经处理了这个逻辑。你可以这样改写你的代码:
注意
on:submit|preventDefault后面直接跟事件处理函数{handleSubmit},中间没有等号。这样应该就能阻止表单提交时的页面刷新了。