首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预期时不能从ipinfo中分配jQuery值

预期时不能从ipinfo中分配jQuery值
EN

Stack Overflow用户
提问于 2013-08-09 19:04:11
回答 2查看 1.4K关注 0票数 1

我在用:

代码语言:javascript
复制
//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==来显示各种联系号码等。

此函数更新隐藏字段的值。我检查过调试器了,它运行得很好。

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

我有过

代码语言:javascript
复制
$(document).ready(function(){
            var testLoc = $('#address').val();

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

        });

目前,我已经将它放在头部的同一个脚本块中,以查看结果是否不同,同样,它始终是空白的,并且总是返回NOES警报。

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

有人能提出解决办法吗?我敢肯定有一个简单的解决办法,它会折磨我的

编辑: HTML

代码语言:javascript
复制
<input type="hidden" name="address" id="address"/>

用解决方案编辑:

代码语言:javascript
复制
    <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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-09 19:08:02

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

请注意,一旦DOM准备就绪,就绪函数就会被调用,因此即使AJAX在此之前返回,您使用该值填充的元素可能甚至还没有准备好。

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

小提琴:http://jsfiddle.net/v6DBB/

票数 1
EN

Stack Overflow用户

发布于 2013-08-09 19:22:34

在get()返回之前,您不能检查地址:

代码语言:javascript
复制
$(document).ready(function () {
    $.get("http://ipinfo.io", function (response) {
        $("#address").html(response.region); //http://jsfiddle.net/zK5FN/2/
        $("input[id=address]").val(response.region);
        var testLoc = $('#address').val();
        if (testLoc == "") {
            alert("NOES!!!");
        }
    }, "jsonp");
});

这就是说,当我运行这个程序时,response.region是空的,所以我仍然会收到警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18153859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档