通过 ISO 代码提交国家/地区 - html 表单

问题描述 投票:0回答:2

所以我想提供所有国家/地区的列表,供用户从表单中进行选择。我从这个网站找到了一个非常好的 html 格式的国家列表。该网站通过以 html 字符串形式列出完整的国家/地区名称来实现我的任务,但该表单实际上将其 ISO 代码发送到服务器。这很棒,但是有人如何解决在阅读提交的值时显示完整国家/地区名称的问题?

您认为最好以 ISO 值的形式提交国家/地区值,还是应该只提交国家/地区的全名?所有网站似乎都在做早期的选择,但这对我来说似乎很麻烦。有人可以对这个问题提出一些想法,解释一下为什么首先要使用 ISO 代码,以及如果使用了 ISO 代码,如何将它们解码回国家/地区名称?谢谢你

html forms
2个回答
1
投票

根据我的评论...想法是,当选择更改时,它会调用 JS 函数。 在那里,您设置了一个数组,其中的键与选择的值以及您希望其显示的内容相匹配。 因此,您只需将该代码传递给数组即可获取值。

<form>

<select onchange="showName()" id="country">
    <option value="AF">Afghanistan</option>
    <option value="AX">Åland Islands</option>
    <option value="AL">Albania</option>
    <option value="DZ">Algeria</option>
    <option value="AS">American Samoa</option>
    <option value="AD">Andorra</option>
    <option value="AO">Angola</option>
    <option value="AI">Anguilla</option>
    <option value="AQ">Antarctica</option>
    <option value="AG">Antigua and Barbuda</option>
    <option value="AR">Argentina</option>
    <option value="AM">Armenia</option>
    <option value="AW">Aruba</option>
    <option value="AU">Australia</option>
    <option value="AT">Austria</option>
    <option value="AZ">Azerbaijan</option>
    <option value="BS">Bahamas</option>
...
</select>
<div id="selResult">
selected: nothing
</div>
</form>

JS:

var myArray = {"AF": "Afghanistan", "AX": "Åland Islands", "AL": "Albania"};
function showName(){
  selectRes = myArray[document.getElementById("country").value];
  document.getElementById("selResult").innerHTML = selectRes;
}

您必须创建完整的列表。 但这是如何使其发挥作用的基本想法。

这个 here fiddle 有这一切,再加上一种使用引用数组的额外方法。

就其价值而言,如果您打算经常使用它,您应该考虑在数据库中创建一个引用表,而不是在 JS 中乱搞。


0
投票

我是英国-澳大利亚人种

© www.soinside.com 2019 - 2024. All rights reserved.