jQuery Validate插件 - 处理错误消息

时间:2014-03-24 23:13:11

标签: jquery forms validation

请为我的表格提供一些帮助

我使用验证插件。

http://jsfiddle.net/Xroad/2pLS2/23/

我想为所有空字段添加一条常规消息,并且该字段在相关消息下面填充自定义字段(例如“请输入至少2个字符”)

我该怎么办呢?

$.validator.setDefaults({
    errorClass: 'error-image',
    validClass: 'ok-image',
    errorElement: 'span',
    errorContainer: '#invalid-empty',
    errorPlacement: function(error,element) {
    return true;
  }
});

$("#form-general").validate({

    rules: {
        firstname: {
            minlength: 2,
            maxlength: 25
        },
        name: {
            minlength: 2,
            maxlength: 25
        },
        email: {
            email: true
        }
    }

});

2 个答案:

答案 0 :(得分:2)

您可以使用messages选项指定自定义消息。

检查此JSFiddle以获取演示。

向选项添加自定义messages并移除空errorPlacement

$.validator.setDefaults({
  errorClass: 'error-image',
  validClass: 'ok-image',
  errorElement: 'span',
  errorContainer: '#invalid-empty',
  //errorPlacement: function(error,element) {
  //  return true;
  //},
  messages: {
    name: {
      required: "",
      minlength: "Dude, your first name is longer than that..."
    },
    firstname: {
      required: "",
      minlength: "I know you can type at least one more character!"
    },
    email: {
      required: "",
      email: "Your email address must be in the format of name@domain.com"
    },
    telephone: "",
    message: ""
  }
});

只需指定您要覆盖默认消息的规则,然后编写自定义消息。

由于您只想在顶部显示常规required消息,因此您只需将required条消息覆盖为空字符串,这样就不会在输入下方显示任何内容。

答案 1 :(得分:0)

只需删除errorPlacement选项即可自动执行此操作。通过这个:

errorPlacement: function(error,element) {
    return true;
}

您告诉jQuery Validate根本不放置错误消息。删除它将允许插件发出消息,这听起来像你想要的。如果您想跳过所需的消息但允许其他消息,则可能必须使用errorPlacement的error部分。它包含消息字符串,因此它会说出“必需”的内容,您可以使用RegExp来显示它。

也许:

errorPlacement: function(error,element) {
    if (/required/.test(error.text()){
        return false;
    } else {
        error.insertAfter(element);
    }
}