关注使用jquery验证器的第一个feld

关注使用jquery验证器的第一个feld,jquery,jquery-validate,Jquery,Jquery Validate,我正在使用jquery验证程序验证表单字段。对于以下字段: 重点是在第三个领域,即电子邮件2,但我想集中在第一个领域,即传真 错误消息显示在文本和其他静态文本之间,这是由于对齐在此处和那里移动。显示消息的最佳方式 在少数情况下,只显示错误消息,而不显示焦点,因为用户不知道错误 代码: 有人能提供解决方案吗?使用 invalidHandler: function(form, validator) { var errors = validator.numberOfInvalids();

我正在使用jquery验证程序验证表单字段。对于以下字段:

  • 重点是在第三个领域,即电子邮件2,但我想集中在第一个领域,即传真

  • 错误消息显示在文本和其他静态文本之间,这是由于对齐在此处和那里移动。显示消息的最佳方式

  • 在少数情况下,只显示错误消息,而不显示焦点,因为用户不知道错误

  • 代码:

    有人能提供解决方案吗?

    使用

    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {                    
            validator.errorList[0].element.focus();
        }
    } 
    

    您自己的代码导致了您描述的问题

     errorPlacement: function (error, element) {
         error.insertAfter(element);
         element.focus();  // <- this line is causing your whole problem
     },
    

    工作代码演示:

    您能展示一些验证代码吗?我添加了我正在使用的代码。2。错误消息显示在文本和其他静态文本之间,这是由于对齐在此处和那里移动。显示消息的最佳方式。这在更改错误后工作。insertAfter(元素);到error.appendTo(element.next());:是您自己造成了
    element.focus()
    的问题。只需删除这一行。非常感谢!!它起作用了。当显示“错误”时,“对齐正在向左移动”意味着文本正在向左移动,我该怎么做才能向右移动而不是向左移动。@bharghavivajrala您好,如果它有效,您可以执行+1并接受答案。就您当前的问题而言,我已经解决了。您可以编辑问题,我将告诉您答案。谢谢!OP自己的代码导致了他的整个问题。他根本不需要
    .focus()
    ,因为该插件可以自动很好地处理这个问题。因此,您不需要再次调用
    .focus()
    就可以使用
    invalidHandler
    。这只在第一个字段上工作一次,若表单在长表单中有第二个等字段,则不设置焦点。
     errorPlacement: function (error, element) {
         error.insertAfter(element);
         element.focus();  // <- this line is causing your whole problem
     },
    
     errorPlacement: function (error, element) {
         error.insertAfter(element);
     },