使用jquery / javascript从url变量填充邮政编码字段

时间:2016-06-24 15:41:27

标签: javascript jquery

我试图弄清楚如何使用jquery / javascript从url变量填充表单上的邮政编码字段,并努力实现这一目标。我有一个jsfiddle的代码:https://jsfiddle.net/jsavage/Lumxgm92/9/。我做了一个类似的事情,从url参数填充表单上的电子邮件地址,但我无法弄清楚如何从url参数填充表单上的邮政编码。任何帮助将不胜感激!谢谢!

 <!--- BEGIN POPULATE ZIPCODE FIELD FROM URL VARIABLE CODE --->

  Y.use('jquery-noconflict', function() {

    function getQuerystring(key, default_) {
        if (default_ == null) default_ = "";
        key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
        var qs = regex.exec(decodeURIComponent (window.location.href));
        if (qs == null)
            return default_;
        else
            return qs[1];
    }

    var other_value = getQuerystring('zipcode');
    other_value = other_value.replace(/(%[a-zA-Z0-9].)/g, "");
    other_value = other_value.replace(/(\+)/g, "");
    jQuery('#billing_addr_zipname').val(other_value);
});  

    <label for="billing_addr_zipname">ZIPCODE:</label>
    <input type="text" name="billing_addr_zipname" id="billing_addr_zipname" value="" maxlength="50" />

2 个答案:

答案 0 :(得分:0)

您需要参考:

<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=true"></script>

这样做:

var zip = <yourzipcode>;
    var lat;
    var lng;
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': zip }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            geocoder.geocode({'latLng': results[0].geometry.location}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[1]) {
                    var loc = getCityState(results);
                }
            }
        });
        }
    }); 

function getCityState(results)
    {
        var a = results[0].address_components;
        var city, state;
        for(i = 0; i <  a.length; ++i)
        {
           var t = a[i].types;
           if(compIsType(t, 'administrative_area_level_1'))
              state = a[i].long_name; //store the state
           else if(compIsType(t, 'locality'))
              city = a[i].long_name; //store the city
        }
        return (city + ', ' + state)
    }

function compIsType(t, s) { 
       for(z = 0; z < t.length; ++z) 
          if(t[z] == s)
             return true;
       return false;
    }

这将返回包含城市和州的字符串,但您可以根据需要进行调整。

答案 1 :(得分:-1)

那个正则表达式应该做什么?看起来它只是用&#34;&#34;替换了检索值中的所有字母数字。&#34;。

编辑:

抓一点。它取代了像%20这样的转义html字符。