【问题标题】:Javascript Code inside input value输入值内的Javascript代码
【发布时间】: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>" />

我已经尝试在这里搜索但找不到答案,有人可以帮忙吗?谢谢!

【问题讨论】:

    标签: javascript html geolocation


    【解决方案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];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-25
        • 1970-01-01
        • 2022-09-30
        • 1970-01-01
        • 2021-09-01
        • 1970-01-01
        • 2016-12-04
        相关资源
        最近更新 更多