我在用:
//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>发布于 2013-08-09 19:08:02
我建议将$.get请求放在document.ready函数中。
请注意,一旦DOM准备就绪,就绪函数就会被调用,因此即使AJAX在此之前返回,您使用该值填充的元素可能甚至还没有准备好。
$(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/
发布于 2013-08-09 19:22:34
在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是空的,所以我仍然会收到警报。
https://stackoverflow.com/questions/18153859
复制相似问题