1

私は使用しています:

//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!!!");
            }

        });

結果が異なるかどうかを確認するために、現在 head 内の同じスクリプト ブロックに配置していますが、常に空白であり、常に 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>
4

2 に答える 2

0

get() が返されるまで、アドレスを確認することはできません:

$(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 が null になるため、アラートが表示されます。

于 2013-08-09T19:22:34.693 に答える