在JQuery中输入字段验证

时间:2011-12-19 05:54:19

标签: jquery

我编写了一个函数来通过jquery验证表单中的一个输入字段。但是我的表单中还有两个附加的文本字段。我不确定是否可以向他们添加附加规则。这是我到目前为止所尝试过的。

$(document).ready(function () {
$(document).ready(function () {
jQuery.validator.addMethod("url_validation", function (value, element) {
return this.optional(element) || /^(([http|https|HTTPS|HTTP]+:\/\/))?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/i.test(value);
}, "error");

$('#myform').validate({
    /** this section is working */
    rules: {
        text_name: {
            required: true,
            url_validation: true,
            maxlength: 2000
        }
    },
    messages: {
        text_name: {
            required: "Please specify a URL",
            url_validation: "The domain you have entered is not a valid domain or sub domain name. Please try again.",
            maxlength: "You have exceeded the maximum length"
        }
    }
    /**********************************************************/
    /*this is where i tried to add other rules to two of my other textboxes*/
    rules: {
        text_name2: {
            required: true,
            url_validation: true,
            maxlength: 2000
        }
    },
    messages: {
        text_name2: {
            required: "Please specify a URL",
            url_validation: "The domain you have entered is not a valid domain or sub domain name. Please try again.",
            maxlength: "You have exceeded the maximum length"
        }
    }
    /*above thing is not working*/

});

在我的HTML中,我还需要验证其他两个文本框。如何执行此任务?

1 个答案:

答案 0 :(得分:2)

validate插件使用rulesmessages作为参数的选项对象。填写它们,但不要双重指定rulesmessages对象。

应该是:

$('#myform').validate({
    rules: {
        text_name: {
           ...
        },
        text_name2: {
           ...
        }
    },
    messages: {
        text_name: {
           ...
        },
        text_name2: {
           ...
        }
    }
});