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

时间:2015-03-18 17:16:46

标签: jquery ios8 jquery-validate mobile-safari

我使用 jQuery Validate plugin 来验证表单输入(用户信息,地址,信用卡详细信息等)

表单位于网站的移动版本上。

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

这适用于我测试的大多数移动浏览器(Android / Chrome,Windows Phone,移动Safari iOS 7及更低版本)。但是iOS8 +上的任何移动Safari浏览器都不会滚动。输入被聚焦并且屏幕上的键盘弹出,但滚动到输入不会发生

我已经调查了其他一些讨论相似但略有不同问题的线程,但无法找到问题的解决方案!

任何帮助都会受到极大的欢迎!

1 个答案:

答案 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
}