Jquery验证,使用来自id的值显示自定义消息

时间:2014-01-23 06:52:46

标签: javascript jquery validation jquery-validate

我使用jquery.validate.js进行字段验证。 它的显示错误消息按照.js文件中的相应字段声明。

我使用此代码进行电子邮件字段的自定义验证。

 <script type="text/javascript">
    $().ready(function() {
        $("#formcustomplan").validate({
            email: {
                required: true,
                email: true
            },          
            messages: {
                email: "Email is required in valid format"
            }
        });
    });
</script>

显示消息,例如“有效格式需要电子邮件” 但我希望该错误消息获取电子邮件ID并将其显示在错误消息中。 (例如,如果我在电子邮箱中输入test.com。它应该在错误消息中显示“test.com无效的电子邮件”)

以下是Fiddle

enter image description here

2 个答案:

答案 0 :(得分:1)

JQuery Validate实际上直接支持functions as messages,所以你不需要做任何超级hacky来做这项工作。它没有很好的记录,但你可以这样做:

messages: {
    email: {
        email: function (params, element) {
            return '"'+$(element).val()+'" is not a valid value';
        }
    }
}

来自文档的引用:

  

每条消息都可以是String或Callback。调用回调   验证器的范围,规则的参数为第一个   参数和元素作为第二个,并且必须返回一个String   显示为消息。

工作示例:http://jsfiddle.net/ryleyb/XUM8k/11/

答案 1 :(得分:0)

您可以使用以下方法重置默认电子邮件验证邮件:

$.validator.messages.email = "Your custom message for email field"

在您的情况下,您可以将用户输入中的新值添加到自定义消息中。以下是使用keyup的技巧:

$('.email').keyup(function () {
    $.validator.messages.email = $('.email').val() + ' is not valid email';
});

$("#formcustomplan").validate({
    email: {
        required: true,
        email: true
    }
});

<强> Updated Fiddle