输入值内的Javascript代码
Posted
技术标签:
【中文标题】输入值内的Javascript代码【英文标题】:Javascript Code inside input value 【发布时间】:2012-11-26 21:30:21 【问题描述】:我使用 Maxminds GEOIP 工具并在正文之后调用它:
<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>" />
我已经尝试在这里搜索但找不到答案,有人可以帮忙吗?谢谢!
【问题讨论】:
【参考方案1】:我会这样写(使用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 为 city 的隐藏文本字段中。
【讨论】:
【参考方案2】:我建议为您希望由 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];
【讨论】:
以上是关于输入值内的Javascript代码的主要内容,如果未能解决你的问题,请参考以下文章
获取array1的值,指定array1的值内的数组值[重复]