表单字段的jquery验证

时间:2013-02-27 12:21:15

标签: jquery forms jquery-validate

有时我只是希望自己不是网络开发人员。这是其中一个时刻。我有一个表格..我需要对诸如邮政编码,电话号码等数字字段等字段进行验证。

现在。这是URL http://bit.ly/YXjsdb

步骤:

  
      
  • 转到URl http://bit.ly/YXjsdb
  •   
  • 将任何产品添加到购物篮
  •   
  • 转到篮下
  •   
  • 将任何地址放入访客结帐字段
  •   
  • 点击添加地址字段
  • ,尝试添加地址   
  • 弹出一个弹出地址簿
  •   

。 我需要字段“邮政编码”和“电话号码”才能成为数字字段。输入的任何其他内容都应该直接向“formError”发送错误消息。

请帮忙。我真的很困惑如何做到这一点。它似乎是使用jQuery验证。但我只是感到困惑。也许我明天会醒来,用清晰的大脑来看待这个并立即找到解决方案。任何人的帮助都很好吗?

var ValidatingForm = new Class({
    Implements:[EventProxy, Options],
    options: {
        submit: 'defaultSubmit'
    },
    setupForm: function(selector, options) {

        this.options.submit = $.proxy(this, 'defaultSubmit');
        if (options) {
            this.setOptions(options);
        }
        this.form = jQuery(selector);
        this.el = selector;
        this.form.on('submit', function(event) {
            event.preventDefault();
        });

        this.form.find('.formError').val(' ');
        $(this.el + ' input').addClass('text ui-widget-content');
        $(this.el + ' select').addClass('ui-widget-content');
        $(this.el + ' button').addClass('ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only');
        $(this.el + ' input:checkbox').addClass('ui-widget-content');

        var self = this;
        this.form.validate({
            submitHandler: this.options.submit,
            showErrors: function(errorMap, errorList) {
                if (this.errorList.length) {
                    self.showFormError('Fields marked * are required');
                }
                for ( var i = 0; this.errorList[i]; i++ ) {
                    var error = this.errorList[i];
                    $(error.element).addClass("ui-state-highlight");
                }
                if (this.settings.unhighlight) {
                    for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) {
                        this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass );
                    }
                }
            },
            highlight: function(element, errorClass) {
                $(element).addClass("ui-state-highlight");
            },
            unhighlight: function(input) {
                $(input).removeClass("ui-state-highlight");
            }
        });
    },
    resetForm: function() {
        this.form.find('.formError').empty();
        this.form.find('.formError').append(' ');
        this.form.validate().resetForm();
        $(this.el + ' input').removeClass('ui-state-highlight');
        $(this.el + ' select').removeClass('ui-state-highlight');
    },
    showFormError: function(errorMessage) {
        this.form.find('.formError').empty();
        this.form.find('.formError').append(errorMessage);
    },
    defaultSubmit: function(form) {
        form.submit();
    }
});

2 个答案:

答案 0 :(得分:0)

如何使用以下代码:只需将代码用作 validator.validateNumbers(number1)

  

var validator = new function(){

this.validatePassowrds = function (pwd, cpwd) {
    if (pwd == cpwd) {
        return true;
    } else {
        return false;
    }
};

this.validateNumbers = function (num) {
    var pattern = /^[0-9]+$/g;
    if (num == num.match(pattern))
        return true;
    else
        return false;
};

this.validateAlphabets = function (alp) {
    var pattern = /^[a-zA-Z]+$/g;
    if (alp == alp.match(pattern))
        return true;
    else
        return false;
};

this.validateEmail = function (email) {
    var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
    if (email.match(pattern) != null && email.match(pattern) != "") {
        return true;
    } else {
        return false;
    }
};

this.validateNonEmpty = function (field) {
    if (field.length > 0)
        return true;
    else
        return false;
};
     

}

答案 1 :(得分:0)

pattern="^[0-9]+$"添加到您的表单字段中。 请记住,如果您有国际客户,他们的邮政编码中有字母(例如荷兰语为0000 AA格式)

可以使用^[0-9]{4}[ ][A-Z]{2}$

完成荷兰语对邮政编码的验证

我在国家/地区选择字段更改时使用此javascript:

<select onchange="if(this.selectedIndex != 0){$('#postcode').attr('pattern','^.+$');}else{$('#postcode').attr('pattern','^[0-9]{4}[ ][A-Z]{2}$');}">

<input type="text" pattern="^[0-9]+$" name="postcode" id="postcode" title="The postal code may only contain numbers">的标题字段中,您可以放置​​他们看到的错误消息,看他们是否尝试提交并且条目是&#34;非法&#34;