0

有时我只是希望我不是网络开发人员。这是那些时刻之一。我有一个表格.. 我需要验证这个字段,例如邮政编码、电话号码等数字字段。

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

脚步:

  • 转到网址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();
    }
});
4

2 回答 2

0

使用以下代码怎么样:只需将代码用作validator.validateNumbers(number1)

var 验证器 = 新函数 () {

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;
};

}

于 2013-02-27T12:23:38.477 回答
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">可以放置​​他们得到的错误消息,以查看他们是否尝试提交并且该条目是“非法的”

于 2013-02-27T12:23:57.653 回答