527 messaggi dal 18 dicembre 2012
Ciao a tutti
ero alla ricerca di un modo per controllare se il cap inserito per una città fosse corretto.
Ho trovato questo script:

function checkZip(comune, cap) {
            var zip = cap.val();
            if (zip.length >= 5 && typeof google != 'undefined') {
                var addr = {};
                var geocoder = new google.maps.Geocoder();
                geocoder.geocode({ 'address': zip }, function (results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        if (results.length >= 1) {
                            for (var ii = 0; ii < results[0].address_components.length; ii++) {
                                var street_number = route = street = city = state = zipcode = country = formatted_address = '';
                                var types = results[0].address_components[ii].types.join(",");
                                if (types == "street_number") {
                                    addr.street_number = results[0].address_components[ii].long_name;
                                }
                                if (types == "route" || types == "point_of_interest,establishment") {
                                    addr.route = results[0].address_components[ii].long_name;
                                }
                                if (types == "sublocality,political" || types == "locality,political" || types == "neighborhood,political" || types == "administrative_area_level_3,political") {
                                    addr.city = (city == '' || types == "locality,political") ? results[0].address_components[ii].long_name : city;
                                }
                                if (types == "administrative_area_level_1,political") {
                                    addr.state = results[0].address_components[ii].short_name;
                                }
                                if (types == "postal_code" || types == "postal_code_prefix,postal_code") {
                                    addr.zipcode = results[0].address_components[ii].long_name;
                                }
                                if (types == "country,political") {
                                    addr.country = results[0].address_components[ii].long_name;
                                }
                            }
                            addr.success = true;

                            var comuneCap = $.trim(addr['city']);
                            if (comuneCap != '') {
                                cap.removeClass('alert-danger');
                                if (comuneCap != comune.val()) {
                                    cap.addClass('alert-danger');
                                    cap.focus();
                                    errore = true;
                                }
                            }

                            return true;
                        } else {
                            return false;
                        }
                    } else {
                        return false;
                    }
                });
            } else {
                return false;
            }
        } 


Per alcune città, es Barletta, non restituisce il nome città anche se passo il cap giusto (76121).
In pratica ho fatto questo test: con l'autocomplete di google inserisco la città e in automatico inserisco anche il cap. All'evento blur della textbox 'Cap' associo il controllo del cap. Quando ho inserito Barletta google mi ha dato il cap esatto ma quando si è verificato l'evento blur non ha trovato la città associata al cap.
Come mai secondo voi?
Mi serve questo controllo perchè per esepio per Roma l'autocomplete non restituisce il cap e l'utente lo deve inserire.
Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.