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

标签 jquery ios8 jquery-validate mobile-safari

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

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

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

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

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

对此的任何帮助都将受到极大的欢迎!

最佳答案

Title: jQuery Validate plugin unable to scroll to field with validation error in iOS 8 Safari

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

The jQuery Validate plugin's source code验证它只会将“焦点”带到无效字段,并且与滚动页面完全无关。如果您的移动浏览器正在滚动,则滚动到焦点元素只是浏览器的一项功能。

您必须编写自己的自定义 invalidHandler function找到第一个带有 error 类的元素并滚动到它。

Callback for custom code when an invalid form is submitted.

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

关于jQuery 验证插件无法滚动到 iOS 8 Safari 中出现验证错误的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29128539/

相关文章:

javascript - 当鼠标悬停在另一个 div 上时,使用淡入淡出等任何效果更改 div 中的图像

javascript - 使用 jQuery/JavaScript 从超链接获取完整 URL

ios - 从 iOS8 自定义键盘启动包含应用程序

ios - 创建可以对突出显示的文本进行操作的应用程序扩展

iphone - UIWebview 中的 html 内的图像不正确

javascript - 使用自定义消息和自定义方法进行 JQuery 验证

jquery - event.preventDefault() 在 Chrome 和 Opera 中不起作用

jQuery validate - 如何删除特定错误消息而不删除任何其他错误消息?

jquery 切换按钮

javascript - 使用 :not to select all elements except inside box with certain class