【问题标题】:Dropdown and content change by country下拉菜单和内容按国家/地区更改
【发布时间】:2018-05-24 17:46:49
【问题描述】:

我有一个下拉菜单,可根据此处看到的所选选项(在本例中为 3 个可用国家/地区)更改内容:

function hideAllContent(){
  Array.prototype.forEach.call(document.getElementById('locations').children, function(v){
    v.style.display = 'none';
  })
}
function openCountry(divId){
  var el = document.getElementById(divId);
  if(el){
    hideAllContent();
    el.style.display = 'block';
  }
}
.country {
  display: none;
}
.country:first-child {
  display: block;
}
<select onchange="openCountry(value);">
  <option value="GT">Guatemala</option>
  <option value="HN">Honduras</option>
  <option value="SV">El Salvador</option>
</select>

<div id="locations">
  <div id="GT" class="country">
    Content for Guatemala
  </div>
  <div id="HN" class="country">
    Content for Honduras
  </div>
  <div id="SV" class="country">
    Content for El Salvador
  </div>
</div>

我想添加自动国家检测,以便在下拉列表中选择用户的国家,并且国家 div 也会发生变化。 我能够使用this codepen 中的资产按国家/地区自动更改下拉列表,但在手动选择国家/地区之前,div 不会更改,而且 freegeoip.net/json 很快就会被弃用; ipinfo.io/json 似乎也在做同样的事情,here's 就是一个例子,以防万一。

我想应该通过 onchange 以外的方式调用 javascript 函数,这样不仅会在手动更改选择之前发生,而且不知道如何继续。

【问题讨论】:

  • 您是否尝试为适合当前国家/地区的 OPTION 设置“selected”属性?这应该像在第一个 codepen 中一样工作。
  • 我想知道以&lt;option selected="selected" disabled=""&gt;Please Select&lt;/option&gt; 作为您的第一个选项是否会确保确实发生更改。我不知道你从哪里测试 - 但如果你总是得到危地马拉 - 那么我认为“onchange”不会触发。
  • 我尝试将第一个选项设置为已选中(我在萨尔瓦多),下拉菜单更改为萨尔瓦多,内容没有更改。

标签: javascript jquery html css


【解决方案1】:

我找到了答案here... IF 语句来显示独立于下拉列表的内容 div 和用于更改下拉列表的另一行。

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 2018-03-23
    • 2013-08-08
    • 1970-01-01
    • 2020-04-04
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多