0

简要说明:

我使用 javascript 来根据他们的邮政编码自动完成访客地址,他们输入邮政编码,脚本填充城市文本字段、街道等。

但 STATE 字段必须是一个选项,而不是文本输入。现在我需要调整脚本来填充它

<!-- Translations -->
    CEP = Zip Code
    Cidade = City
    Bairro = Neighborhood
    Rua/Av = Street/Avenue
    Estado = State

    <head>
        <script type="text/javascript">
                function getEndereco() {
                        if($.trim($("#cep").val()) != ""){
                            $.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val(), function(){
                                if(resultadoCEP["resultado"] != 0){
                                    $("#rua").val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
                                    $("#bairro").val(unescape(resultadoCEP["bairro"]));
                                    $("#cidade_pessoa_fisica").val(unescape(resultadoCEP["cidade"]));

                    Needs fix ----> $("#estado").val(unescape(resultadoCEP["estado"]));

                                }else{
                                    return;
                                }
                            });             
                        }           
                }
            </script>
        </head>
    <body>
                  <!-- Working perfectly -->

                  <input name="cep" id="cep" maxlength="8" type="text" onBlur="getEndereco()" size="8">
                  <label for="cidade">Cidade</label>
                  <span class="w">
                  <input tabindex="1" class="input" id="cidade_pessoa_fisica" type="text" />
                  </span>
                  <label for="bairro">Bairro</label>
                  <input name="bairro" id="bairro" type="text">
                  <label for="rua">Rua/Avenida</label>
                  <input name="rua" id="rua" type="text">
                  <label for="rua">Numero</label>
                  <input name="rua" id="rua" type="text">



                <!-- Needs FIX -->    

                  <label for="estado">Estado</label>
                  <select id="estado" style="width:300px;">
                    <option value="">Selecione</option>
                    <option value="AC">Acre</option>
                    <option value="AL">Alagoas</option>
                    <option value="AP">Amap&aacute;</option>
                    <option value="AM">Amazonas</option>
                    <option value="BA">Bahia</option>
                    <option value="CE">Cear&aacute;</option>
                    <option value="DF">Distrito Federal</option>
                    <option value="ES">Esp&iacute;rito Santo</option>
                    <option value="GO">Goi&aacute;s</option>
                    <option value="MA">Maranh&atilde;o</option>
                    <option value="MT">Mato Grosso</option>
                    <option value="MS">Mato Grosso do Sul</option>
                    <option value="MG">Minas Gerais</option>
                    <option value="PA">Par&aacute;</option>
                    <option value="PB">Para&iacute;ba</option>
                    <option value="PR">Paran&aacute;</option>
                    <option value="PE">Pernambuco</option>
                    <option value="PI">Piau&iacute;</option>
                    <option value="RJ">Rio de Janeiro</option>
                    <option value="RN">Rio Grande do Norte</option>
                    <option value="RS">Rio Grande do Sul</option>
                    <option value="RO">Rond&ocirc;nia</option>
                    <option value="RR">Roraima</option>
                    <option value="SC">Santa Catarina</option>
                    <option value="SP">S&atilde;o Paulo</option>
                    <option value="SE">Sergipe</option>
                    <option value="TO">Tocantins</option>
                </select>
    </body>

由于另一个 javascript 插件,State (estado) 必须是一个选项值。因为,如果<option value="SP">= TRUE,它会更改一些 jQuery 手机掩码以增加一位数字,因为在这种特定状态下,手机多一位数字。这就是为什么我不能简单地将其更改为文本

4

1 回答 1

0

您在这一行有一个错误:

$("#estado").val(unescape(resultadoCEP["estado"]));

它应该是:

$("#estado").val(unescape(resultadoCEP["uf"]));

整体功能:

           function getEndereco() {
                if ($.trim($("#cep").val()) != "") {                            
                        $.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val(), function(){
                            if(resultadoCEP["resultado"] != 0){
                                $("#rua").val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
                                $("#bairro").val(unescape(resultadoCEP["bairro"]));
                                $("#cidade_pessoa_fisica").val(unescape(resultadoCEP["cidade"]));
                                $("#estado").val(unescape(resultadoCEP["uf"]));
                            }else{
                                return;
                            }
                        });             
                    }           
            }
于 2013-02-20T18:06:29.890 回答