首页 文章

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

提问于
浏览
3

function validateEmail(){// ############################### $ $("#contato_form").validate({errorContainer:"#wrapperError", errorLabelContainer:"#wrapperError span.error",debug:true,rules:{nome:{required:true},email:{required:true},mensagem:{required:true}},messages:{nome:{required:'Informe seu nome.'},email:{必需:'Informe um endereço email válido.'},mensagem:{required:'Por favor, escreva sua mensagem.'}
},submitHandler:function(){$ .ajax({type:"POST",url:“http://www.mydomain.com/sendemail.php ", data: ({nome: $(" input #nome ").val(), email: $(" input#email ").val(), mensagem: $(" textarea#mensagem”) . val()}),success:function(msg){$ ('div#enviado') . html(' ') . append(msg); }}; }}; }

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

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

我怎么才能得到第一个错误没有那个errorContainer?一旦第一个输入正常,那么下一个错误依此类推......

谢谢

2 回答

  • 0
    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"}
       }
    
  • 7

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

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

相关问题