当文件输入的验证(在 Laravel 项目中)失败时,用户将被重定向到当前页面。
问题是用户必须先向下滚动才能看到错误消息以及他做错了什么。
这似乎不是我能想到的最好的用户体验。
所以我认为最好重定向到页面并“向下滚动”(通过 javascript)到用户犯错误的地方;
我可以使用 scrollIntoView()
来做到这一点,我只需要查明用户是否被重定向到该页面(仅当验证失败时才会发生)
我尝试过这个:
if (window.performance.navigation.type == 0) {
specificElement.scrollIntoView();
}
但是如果用户在表单提交后到达那里(这发生在之前 - 我一个接一个地有两个表单),它也将是0
,所以这个“解决方案”对我没有帮助完全没有。
有什么办法可以发现用户已重定向吗?
最佳答案
我认为首先检查是否存在验证错误会更容易.. 因此,如果存在,请运行 javascript srollintoview..
在 Laravel 5.7 中你可以使用
@if ($errors->any())
<script>
element.scrollIntoView();
</script>
@endif
关于javascript:检测用户是否被重定向到该页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58504253/