jQuery验证插件 - 只显示errorContainer中的第一个错误

时间:2010-04-23 20:02:31

标签: jquery validation

function validateEmail(){       // ###############################       $( “#contato_form”)。验证({        errorContainer:“#wrapperError”,        errorLabelContainer:“#wrapperError span.error”,        调试:真实,           规则:{         nome:{required:true},         电子邮件:{required:true},         mensagem:{required:true}           },           消息:{         nome:{required:'Informe seu nome。' },         电子邮件:{required:'Informeumedompreçomailválido。' },         mensagem:{required:'Por favor,escreva sua mensagem。' }
          },       submitHandler:function(){        $就({           类型:“POST”,           网址:“http://www.mydomain.com/sendemail.php”,           data:({nome:$(“input#nome”)。val(),email:$(“input#email”)。val(),mensagem:$(“textarea#mensagem”)。val()}) ,           成功:函数(msg){          $('div#enviado')。html('')。append(msg);           }         });       }        });     }

当我提交时。我收到此错误消息:

  Informe seu nome.Informe um endereço email válido.Por favor, escreva sua mensagem.  

如何才能获得第一个错误no errorContainer?一旦第一个输入正常,那么下一个错误依此类推......

由于

2 个答案:

答案 0 :(得分:7)

showErrors: function(errorMap, errorList) {
    if (errorList.length) {
       var s = errorList.shift();
       var n = [];
       n.push(s);
       this.errorList = n;
    }
    this.defaultShowErrors();
},

此代码从插件errorList中删除所有错误元素,但首先在验证完成后但在显示之前删除。我认为,这可以用更短的方式编写,但为了便于理解解决方案的想法而留下。我希望这有帮助。还有一句话......有时,在某些情况下,而不是只有一条错误消息可以显示所有这些消息。为防止这种情况,请尝试通过以下代码对字段进行分组(例如):

   groups: {
      logon: "login password"
   },messages : {
      login : {required:"Enter login"},
      password : {required:"Enter password"}
   }

答案 1 :(得分:0)

不确定这是否可行,但您可以使用以下代码在submitHandler函数中首先更改错误文本:

var errorSpan = $('#wrapperError span.error');
errorSpan.text(errorSpan.text().match(/^[^.]*\.?/g));