jquery 验证:单独显示一个控件的错误消息

jquery validation: Show error message for one control alone

我正在使用 jquery 验证插件来验证我的表单。版本:jQuery 验证插件 v1.15.0。这是我试过的方法:

$("#myform").validate(
            {
                errorplacement: function(error, element) { },
                rules:
                {
                    customername: "required",
                    mobileno:"required",
                    emailid:{
                        required: true,
                        email: true
                    },
                    phoneno:"required",
                    projectsponsor:"required",
                    status:"required",
                    loginid:"required",
                    password:"required",
                    confirmpassword:{
                        required:true,
                        equalTo: '#password'
                    }
                },
                messages:
                {
                    confirmpassword:{
                        equalTo: 'The two passwords do not match!'
                    }
                }
            });

通过使用它,我已经提到我的所有控件都是必需的。但是,我想单独显示 confirmpassword 的错误消息。但是,所有其他控件都会显示默认错误消息 "This Field is required"。

我的要求是,如果所有其他字段都是必需的,我该如何单独显示 confirmpassword 控件的错误消息。我该怎么做?

您必须为控件创建组以按组验证和显示错误消息。 您还可以使用依赖于任何字段,如下所示:

在 depend 函数中,您可以在检查密码是否相等时构建您的逻辑

function isPasswordPresent() {
   return $('#password').val().length > 0;
}

confirmpassword: {
        required: true,            
        equalTo: {
            depends: isPasswordPresent,
            param: "#password"
        }
    },
  1. messages对象中,将错误信息分配给字段名而不是规则名。这样,将针对此字段上的所有错误显示相同的消息。

    messages: {
        confirmpassword: 'The two passwords do not match!'
    }
    
  2. 拼写为errorPlacement,不是errorplacement

  3. 您不应将 errorPlacement 留空。而是在里面放一个 return false ,这个功能就被禁用了。但是,您不需要 errorPlacement 来禁用默认消息。请参阅下面的#4。

  4. 使用 showErrors 而不是 errorPlacement。使用 showErrors,您可以单独控制每条消息,此功能将自动抑制默认错误消息。 errorMap 参数包含所有字段名称和错误消息作为 key/value 对。用 errorMap.confirmpassword.

    挑出 confirmpassword 消息
    showErrors: function(errorMap, errorList) {
        var message = (errorMap.confirmpassword) ? errorMap.confirmpassword : '';
        $("#message").html(message);
    },
    

演示:jsfiddle.net/Ljs96zcq/