2014-12-06 77 views
2

我正在使用地理位置脚本来生成基于IP的用户城市。需要将Javascript中生成的值插入隐藏表单字段

页眉代码:

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script> 

代码生成城市:

<script language="JavaScript">document.write(geoip_city());</script> 

我的形式如下:

<form name="form1" id="form1" method="post" action="script.php">Email: <input  size="35" type="text" name="email"> 
<input type="hidden" id="city" name="city" value="" > 
    </form> 

我需要能够插入产生的价值从javascript转换为表单的值字段。

我似乎无法做到这一点,我已经想尽各种办法等形式后加这样的:

<script type="text/javascript"> 
document.getElementById("city").value = "1"; 
alert(document.getElementById("city").value); 
</script> 

这是一个已经被保存为.PHP页面上。

+0

假设最后的代码片断示例代码做:浏览器控制台是否会提供任何警告或其他信息?你确定代码是在你真的可以和dom进行交互的时候执行的吗? – Rangad 2014-12-06 17:50:23

回答

0

你只是插入“1”。尝试:

<script language="JavaScript"> 
var city = geoip_city(); 
document.write(city); 
</script> 

<script type="text/javascript"> 
document.getElementById("city").value = city; 
alert(document.getElementById("city").value); 
</script> 

这可能需要细化 - 我没有使用这个库。变量city allpws你读两次的位置。

0

该公司似乎no longer support that version of the js library。这里是你如何使用他们的latest lib

"use strict"; 
 

 
var getCity = function(geoipResponse){ 
 
    var cityName = geoipResponse.city.names.en || 'your city'; 
 
    document.getElementById('city').value = cityName; 
 
    alert(cityName); 
 
}; 
 

 
var fail = function(err) { 
 
    alert(err.error); 
 
    console.error(err); 
 
} 
 
geoip2.city(getCity, fail);
<script src="http://js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js"></script> 
 
<form name="form1" id="form1" method="post" action="script.php"> 
 
    Email: <input size="35" type="text" name="email" /> 
 
    City: <input type="not_hidden" id="city" name="city" value="" /> 
 
</form>

0

您可以更改语句

document.form1.city.value="new value"; 

这会工作

相关问题