根据用户从下拉列表中选择的内容显示国家/地区代码


Show country code based on user selection from dropdown list

我希望用户从下拉列表中选择他/她的国家/地区,然后我希望在文本字段中显示国家/地区代码,以便用户键入他/她的号码。

这是带有电话号码代码的国家/地区列表:

  <select name="country">
  <option value="">Country...</option>
  <option value="Afghanistan">Afghanistan</option>
  <option value="Albania">Albania</option>
   .
   .
   ETC till
   <option value="Zimbabwe">Zimbabwe</option>
   </select>
 <label for="phone">Phone Number</label><
 <input id="phone" name="phone" placeholder="user's number " required="" type="number"> 

例如,当用户选择沙特阿拉伯时我希望文本字段显示966
我考虑过将国家代码作为选项中的值

我在这里发现了类似的情况,但我更喜欢将其作为第二个选项

假设您使用的是jQuery:

<select name="country" id="country">
    <option value="">Country...</option>
    <option value="966">Saudi Arabia</option>
</select>
$('#country').change(function () {
    var countryCode = $(this).val();
    if (countryCode) {
        $('#phone').val(countryCode);
    }
});

JSFiddle

有几种方法可以做到这一点。IMO越容易创建和填充一个JS对象,该对象包含国家名称作为索引,国家代码作为值。但是tou也可以使用ajax。。。

您可以使用jquery的更改事件侦听器,因此每次更改选择时,输入中的文本也会更改。你可以有一个既有国家名称又有代码的数组,每次发生变化时,它都会从该数组中获得国家代码。

单击此处获取有关更改事件的信息。

单击此处获取有关关联阵列的信息,这些信息将帮助您创建可以使用的阵列。

@Taylor Burleson。你的代码看起来不错

<select name="country" id="country">
    <option value="">Country...</option>
    <option value="966">Saudi Arabia</option>
</select>
$('#country').change(function () {
    var countryCode = $(this).val();
    if (countryCode) {
        $('#phone').val(countryCode);
    }
});

拉娜,你应该在所有国家的数据库饲料;在同一个数据库表中,可以批量添加国家代码。当您调用数据库以获取所有信息时,包括用户界面,您应该能够使用上面的jquery代码来显示它。