Javascript 未按预期从ipinfo分配jQuery值

Javascript 未按预期从ipinfo分配jQuery值,javascript,jquery,html,google-maps,Javascript,Jquery,Html,Google Maps,我正在使用: //function to obtain current location, this is used to display relevant contact information $.get("http://ipinfo.io", function(response){ $("#address").html(response.region);//http://jsfiddle.net/zK5FN/2/ $("input[id=addre

我正在使用:

//function to obtain current location, this is used to display relevant contact information
    $.get("http://ipinfo.io", function(response){
        $("#address").html(response.region);//http://jsfiddle.net/zK5FN/2/

        $("input[id=address]").val(response.region);

    }, "jsonp");
获取联系人页面的当前位置。目的是我可以使用if address==来显示各种联系号码等

此函数用于更新隐藏字段的值。我已经检查了调试器,它工作正常

然后我想得到这个值,这样我就可以玩它了,但它总是空的

我有

$(document).ready(function(){
            var testLoc = $('#address').val();

            if(testLoc == ""){
                alert("NOES!!!");
            }

        });
我现在把它放在头部的同一个脚本块中,看看结果是否不同,同样,它总是空白的,并且总是返回NOES警报

我认为,通过等待文档加载,我可以确定这些值将被分配/设置

有人能提出解决方案吗?我相信有一个简单的解决办法,它会把我害死的

编辑:HTML

<input type="hidden" name="address" id="address"/>

使用解决方案编辑:

    <script>
    $(function() {
        $.ajax({url:"http://ipinfo.io",dataType:'jsonp'})
            .success(function(response){
                $("#address").val(response.region);
                $("input[id=address]").val(response.region);


                var testLoc = $('#address').val();
                if(testLoc == ""){
                    alert("NOES!!!");
                }else{
                    alert("jQuery can suck my...")
                }
            });
    });

</script>

$(函数(){
$.ajax({url:http://ipinfo.io,数据类型:'jsonp'})
.成功(功能(响应){
$(“#地址”).val(答复.地区);
$(“input[id=address]”)val(response.region);
var testLoc=$('#address').val();
如果(testLoc==“”){
警惕(“不!!!”);
}否则{
警报(“jQuery可以吮吸我的…”)
}
});
});

我建议将
$.get
请求放在document.ready函数中

请注意,DOM一就绪就调用ready函数,因此,即使AJAX在此之前返回,您正在填充值的元素也可能尚未就绪

$(function() { // this is shorthand for $(document).ready(
    $.get({url"http://ipinfo.io",dataType:'jsonp'})
    succsss(function(response){
        // do something with response
    });
});

Fiddle:

我建议将您的
$放入document.ready函数中

请注意,DOM一就绪就调用ready函数,因此,即使AJAX在此之前返回,您正在填充值的元素也可能尚未就绪

$(function() { // this is shorthand for $(document).ready(
    $.get({url"http://ipinfo.io",dataType:'jsonp'})
    succsss(function(response){
        // do something with response
    });
});

Fiddle:

在get()返回后,才能检查地址:


也就是说,当我运行此命令时,response.region为null,因此我仍然会收到警报。

在get()返回之前,您无法检查地址:


也就是说,当我运行此命令时,response.region为空,因此我仍然会收到警报。

我仍然会得到相同的结果,我已经更新了代码。忘记了为了连接到不同的域,您需要使用jsonpi,但仍然需要使用更新代码的相同结果。忘记了为了连接到不同的域,您需要在这里使用jsonpsame,。从不返回值-。-是否需要response.ip而不是response.region?此处相同,。从不返回值-。-是否需要response.ip而不是response.region?