我正在使用地理位置脚本,该脚本根据IP生成用户城市。
标题代码:
<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 :(得分: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
会让您读取该位置两次。
答案 1 :(得分: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 );
&#13;
<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>
&#13;
答案 2 :(得分:0)
您可以将语句更改为
document.form1.city.value="new value";
这会起作用