我使用 jQuery Validate plugin 来验证表单输入(用户信息,地址,信用卡详细信息等)
表单位于网站的移动版本上。
当您填写表单并向下滚动到“购买”时。页面底部的按钮,如果您有无效字段(例如,您忘记输入任何内容),请点击“购买”按钮。按钮将聚焦无效输入并向上滚动到该输入。这都是由jQuery Validation插件完成的。
这适用于我测试的大多数移动浏览器(Android / Chrome,Windows Phone,移动Safari iOS 7及更低版本)。但是iOS8 +上的任何移动Safari浏览器都不会滚动。输入被聚焦并且屏幕上的键盘弹出,但滚动到输入不会发生。
我已经调查了其他一些讨论相似但略有不同问题的线程,但无法找到问题的解决方案!
任何帮助都会受到极大的欢迎!
答案 0 :(得分:3)
标题:jQuery Validate插件无法滚动到iOS 8 Safari中带有验证错误的字段
实际上,这不是任何浏览器的插件功能。
The jQuery Validate plugin's source code验证它只会将“焦点”带到无效字段,与滚动页面完全无关。如果您的移动浏览器正在滚动,则只有浏览器的一项功能才能滚动到焦点元素。
您必须编写自己的自定义invalidHandler
function来查找带有error
类的第一个元素并滚动到它。
提交无效表单时回调自定义代码。
invalidHandler: function(event, validator) {
// your code for finding invalid element and scrolling
}