4 Stimmen

Jquery PO BOX Validierung

Ich habe mir einige der älteren Beiträge angesehen und bin immer noch ein wenig verwirrt, was hier passiert. Ich habe ein Versandformular, das KEINE PO-Boxen zulässt, also versuche ich, einen Validator zu finden, der durchschaut und sicherstellt, dass das Eingabefeld keine PO-Boxen enthält. Ich stelle sicher, dass jedes Feld mit diesem Code ausgefüllt wird, aber ich frage mich, wie ich die PO-Box-Validierung mit einbeziehen kann. Hinweis: Dies ist eine separate Datei von meinem eigentlichen Formular

$( document ).ready(

    function()
    {
        $( '#shipping' ).submit(
            function()
            {

                    var required_fields = new Array(
                        'name',
                        'service',
                        'company',
                        'contact',
                        'street',
                        'city',
                        'state',
                        'zip',
                        'projectnum'
                    );

                        for( j in required_fields )
                        {

                            var theRequiredField = required_fields[j]
                            var inputField = $( '[name="' + theRequiredField + '"]' )

                            if( inputField.val() == '' )
                            {                                   
                                alert( "The '" + theRequiredField + "' field is required." );
                                inputField.focus();
                                return false;

                            } 

                        } 

            } // function
            ) // submit
    }

);

9voto

drudge Punkte 33139

Vielleicht gibt es eine bessere Methode, aber ich habe mir folgendes ausgedacht:

Live-Demo

$('input[name=address]').each(function() {
    var pattern = new RegExp('[PO.]*\\s?B(ox)?.*\\d+', 'i');
    if ($(this).val().match(pattern)) {
        $(this).after('<span class="pob">No PO Boxes</span>');
    }
});

1voto

Mihir Kagrana Punkte 411

Ich habe das oben von drudge bereitgestellte RegEx verwendet. In den meisten Fällen funktioniert es, aber bei Zeichenfolgen wie "1122 new space - Apt. 99B1" habe ich ein falsches Ergebnis erhalten. Also änderte ich RegEx in:

var pattern = new RegExp('(P.O.|PO|Box)+\\s?.*\\d+', 'i');

Diese prüft auf die Wörter "P.O." oder "PO" oder "Box", gefolgt von einer Zahl, um die Adresse als Postfach zu bestimmen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X