输入值内的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代码的主要内容,如果未能解决你的问题,请参考以下文章

屏蔽 json 值内的特定数据

Netezza CSV 加载忽略值内的逗号

根据以数组形式存在于对象值内的值搜索对象数组

获取array1的值,指定array1的值内的数组值[重复]

JavaScript:闭包是不是可以通过值而不是像 PHP 中的引用来访问封闭范围内的变量?

带有 Javascript 的 Wordpress 插件