【问题标题】:jQuery validation plugin - show only the first error at errorContainerjQuery 验证插件 - 仅在 errorContainer 处显示第一个错误
【发布时间】:2011-02-11 16:46:37
【问题描述】:

函数 validateEmail(){ // ############################### $("#contato_form").validate({ errorContainer: "#wrapperError", errorLabelContainer: "#wrapperError span.error", 调试:真, 规则:{ 名称:{必需:真}, 电子邮件:{要求:真}, 消息:{必需:真} }, 消息:{ 名称:{ 必需:'通知 seu 名称。' }, 电子邮件:{ 必填:'通知 um endereço email válido。' }, mensagem: { required:'Por 赞成,escreva sua mensagem。' }
}, 提交处理程序:函数(){ $.ajax({ 类型:“发布”, 网址:“http://www.mydomain.com/sendemail.php”, 数据:({nome:$("input#nome").val(),电子邮件:$("input#email").val(),mensagem:$("textarea#mensagem").val()}) , 成功:功能(味精){ $('div#enviado').html(' ').append(msg); } }); } }); }

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

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

我怎样才能只得到第一个错误而不是那个errorContainer?一旦第一个输入是好的,然后下一个错误等等..

谢谢

【问题讨论】:

    标签: jquery validation


    【解决方案1】:
    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"}
       }
    

    【讨论】:

    • 谢谢伊戈尔,我在stackoverflow上发布了一个问题,但没有人回应,最后我再次搜索并在这里找到了它。这正是我想要的。
    • 我很高兴有人发现我的解决方案很有用。我只是探索插件的代码,看看它是如何工作的——使用了哪些变量、结构和内部函数。当缺少某些需要的功能时,我通常会这样做,甚至在插件中添加我自己的。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多