需要从Javascript插入隐藏表单字段生成的值

时间:2014-12-06 17:36:39

标签: javascript

我正在使用地理位置脚本,该脚本根据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。

的页面上

3 个答案:

答案 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

进行操作的方法

&#13;
&#13;
"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;
&#13;
&#13;

答案 2 :(得分:0)

您可以将语句更改为

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

这会起作用