jQuery Validate插件无法滚动到iOS 8 Safari中出现验证错误的字段



我正在使用jQuery Validate插件验证表单输入(用户信息、地址、信用卡详细信息等)

该表单位于移动版网站上

当您填写表格并向下滚动到页面底部的"购买"按钮时,如果您有一个无效字段(例如,您忘记输入任何内容),单击"购买"键将聚焦无效输入并向上滚动到该输入。这一切都是由jQuery验证插件完成的。

这适用于我测试过的大多数移动浏览器(安卓/Chrome、Windows Phone、移动Safari iOS 7及以下版本)。但是,iOS8+上的任何移动Safari浏览器都不会滚动。输入是聚焦的,屏幕键盘弹出,但不会出现滚动到输入

我已经调查了其他几个讨论类似但略有不同问题的线程,但找不到解决问题的方法!

任何帮助都会得到极大的回报!

标题:jQuery Validate插件无法滚动到iOS 8 Safari 中出现验证错误的字段

事实上,这不是任何浏览器的插件功能。

jQuery Validate插件的源代码验证它只会将"焦点"带到无效字段,并且与滚动页面完全无关。如果你的移动浏览器正在滚动,滚动到焦点元素只是浏览器的一个功能。

您必须编写自己的自定义invalidHandler函数,才能找到具有error类的第一个元素并滚动到它

提交无效表单时对自定义代码的回调。

invalidHandler: function(event, validator) {
    // your code for finding invalid element and scrolling
}

最新更新