我使用的是一个地理位置脚本,它根据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的页面上。
发布于 2014-12-07 01:42:07
您只是插入了"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提示您读取位置两次。
发布于 2014-12-07 01:55:40
在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>
发布于 2014-12-07 01:59:37
您可以将语句更改为
document.form1.city.value="new value";这将会起作用
https://stackoverflow.com/questions/27334468
复制相似问题