2012-11-26 36 views
-1

我用Maxminds GEOIP工具,只是把这个身体后:输入值中的JavaScript代码

<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script> 

要打印出来的城市和国家我只是粘贴到HTML文档这样的:

<script>document.write(geoip_city());</script> 
<script>document.write(geoip_region());</script> 

我想将这些值传递给我可以提交并分配给变量的隐藏输入。我想是这样的,但很明显的语法是路要走:

<input type="hidden" name="city" value="<script>document.write(geoip_city());</script>" /> 

我试图在这里寻找,但未能找到答案,任何人可以帮助?谢谢!

回答

0

我想这(使用jQuery)作为写:

var geo_city = geoip_city(); 
var geo_region = geoip_region(); 

$(document).ready(function(){ 

    $("#city").val(geo_city); 

}); 

<input type="hidden" id="city" name="city" value="" /> 

此代码将采取可变geo_city,并把它放在一个具有ID的城市你的隐藏文本字段。

0

我建议在要由geoip服务填充的元素(例如显而易见的geoip类名称)中添加一个类,然后使用geoip函数的映射来填充隐藏的input元素的值,具体取决于他们的名字,如(未经测试,并且没有公开API,不幸的是不可测):

var geoipMap { 
    'city' : geoip_city(), 
    'region' : geoip_region(), 
    'country' : geoip_country() // and so on... 
}; 

var inputs = document.getElementsByTagName('input'), 
    geoipInputs = []; 

for (var i = 0, len = inputs.length; i < len; i++) { 
    if (inputs[i].className.indexOf('geoip') !== -1) { 
     geoipInputs.push(inputs[i]); 
    } 
} 

for (var i = 0, len = geoipInputs; i < len; i++) { 
    geoipInputs[i].value = geoipMap[geoipInputs[i].name]; 
}