0

ときどき、自分が Web 開発者でなかったらよかったのにと思うことがあります。そして、これはそれらの瞬間の 1 つです。私はフォームを持っています..郵便番号、電話番号などの番号フィールドなどのフィールドについてこれを検証する必要があります.

今。ここに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();
    }
});
4

2 に答える 2

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 に答える
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 に答える