validate.js 无效的不同功能

validate.js different functions on invalid

我正在使用 validation.js 插件,在我想要它的情况下,我试图对其进行一些更改,但经过大量思考、测试和搜索后,我一无所获,至少没有我想要的... 我有这个代码:

$("#form").validate({
    rules: 
    {
        phone: 
        {
            required: true,
            number: true,
            minlength: 6
        }
    },
    messages:
    {
        phone: 
        {
            required: 'This field is required',
            number: 'Invalid phone number',
            minlength: 'Minimum length: 6'
        }
    }
});

一切都很好,但我希望它 运行 除了显示消息之外还有一些不同的功能,例如,当用户键入小于 6 个字符的某物时,显示消息和 运行 功能一, 如果用户输入 sth 除了 nums 它会显示 massage 和 运行 Function TWO

像这样:

    $("#form").validate({
        rules: 
        {
            phone: 
            {
                required: true,
                number: true,
                minlength: 6
            }
        },
        messages:
        {
            phone: 
            {
                required: 'This field is required',
                number: 'Invalid phone number' + function TWO,
                minlength: 'Minimum length: 6' + function ONE
            }
        }
    });

有人能帮帮我吗?

您可以使用回调 function 而不是 string 作为自定义消息的值。只需确保 return 来自该函数的消息。这样您就可以在输出消息之前进行任何操作。回调 function 有两个参数,第一个是传递给规则的值,第二个是元素。

messages

...Each message can be a String or a Callback. The callback is called in the scope of the validator, with the rule's parameters as the first argument and the element as the second, and must return a String to display as the message.

messages:
{
  phone: 
  {
    required: 'This field is required',
    number: function(rule, elem) {
      doSomeStuff('run before number message');
      return 'Invalid phone number';
    },
    minlength: function(rule, elem) {
      doSomeStuff('run before minlength message');
      return 'Minimum length: 6';
    }
  }
}

在此处勾选-- JSFiddle Example --