所以我想提供一个供用户从表单中选择的所有国家/地区的列表。我从这个网站找到了一个非常好的html格式list of countries。该网站通过将完整的国家/地区名称列为html字符串来实现我的任务,但该表单实际上将其ISO代码发送到服务器。这很好,但在阅读提交的值时,有人会如何解决提供完整国家/地区名称的问题?
您认为最好将国家/地区值作为ISO值提交,还是仅提交国家/地区的全名?所有网站似乎都在做早期的选择,但这对我来说似乎很麻烦。有人可以提出一些想法,解释为什么首先使用ISO代码,以及如果使用ISO,如何将它们解码回国家名称?谢谢
答案 0 :(得分:1)
根据我的评论...这个想法是,当select更改时,它会调用JS函数。在那里,您有一个数组设置,其中的键与select的值匹配,以及您希望它显示的内容。因此,您只需要将该代码传递给数组即可获得该值。
<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中捣乱这样做。