【问题标题】:Is there a way to prevent jquery unobtrusive validation from setting the focus on the invalid field有没有办法防止 jquery 不显眼的验证将焦点设置在无效字段上
【发布时间】:2012-02-24 20:04:21
【问题描述】:

我有一个带有几个文本框的表单的 jquery 移动页面。我正在使用 jquery.validate.unobtrusive.js 来验证表单。如果一个字段被标记为必填并且用户没有填写它,则验证会捕获它并将焦点放在文本框上。在 iPhone 和 Android 等移动设备上,该焦点将滚动屏幕并调出虚拟键盘,有时会隐藏验证消息或滚动过去。我很好奇是否有办法禁用这种“自动聚焦无效”行为。

它最终可能不会带来更好的用户体验,但我想尝试将其关闭。

【问题讨论】:

    标签: jquery jquery-mobile jquery-validate


    【解决方案1】:

    试试这个:

    $(document).ready(function () {    
        $("form").bind("invalid-form.validate", onValidationHandler);
    });
    
    function onValidationHandler(form, validator) {
        validator.settings && (validator.settings.focusInvalid = false);
    };
    

    【讨论】:

      【解决方案2】:

      我发现在使用不显眼的验证时这是最好的。只需将其添加到您的脚本中,无论验证如何运行,它都会禁用自动对焦行为:

      $.validator.defaults.focusInvalid = false;
      

      【讨论】:

        【解决方案3】:

        尝试将focusInvalid 选项设置为false

        $("#form").validate({
            focusInvalid: false
        });
        

        通过 validator.focusInvalid() 将最后一个活动或第一个无效元素集中在提交上。最后一个活动元素是提交表单时具有焦点的元素,避免窃取其焦点。如果没有聚焦元素,则表单中的第一个获取它,除非此选项被关闭。

        示例: http://jsfiddle.net/3JtBF/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多