从国际电话输入插件Javascript中选择后填充状态下拉框
Populate State Dropdown after selecting from International Telephone Input plugin Javascript
我正在使用这个网站提供的国际电话输入插件:https://github.com/Bluefieldscom/intl-tel-input
我现在需要知道的是,如果有一种方法在javascript上如何我可以填充我的状态下拉框当用户选择使用国际电话输入的国家。
这是我的代码:
<input type="tel" id="country_cellno">
<select name="state" id="state" required="">
<option>States</option>
</select>
/*array for States, 63 here is the countrycode*/
var s_b = new Array();
s_b[63]= "state1|state2";
$(document).ready(function() {
{
var countryData =$("#country_cellno").intlTelInput("getSelectedCountryData").dialCode;
var stateElement = document.getElementById(state);
stateElement.length = 0; // Fixed by Julian Woods
stateElement.options[0] = new Option('Service Provider', '');
stateElement.selectedIndex = 0;
var state_arr = s_b[countryData].split("|");
for (var i = 0; i < state_arr.length; i++) {
stateElement.options[stateElement.length] = new Option(state_arr[i], state_arr[i]);
}
工作示例
您正在使用的库(国际电话输入)返回国家和拨号代码。如果你想要州和普罗维登斯的信息,那么你需要从不同的来源获取。
第一步是添加一个事件处理程序来检测用户何时选择一个国家。在示例中是这样做的:
$("#phone").next(".flag-dropdown").click(function() {
var country = $("#phone").intlTelInput("getSelectedCountryData").name;
// do something with the country information
});
然后,该示例向Yahoo YQL发出jsonp请求,以获取所选国家的州列表并填充下拉列表。然而,任何提供信息的web服务都可以被使用。
运行代码片段来尝试
<!DOCTYPE html>
<html>
<head>
<Title>Demo</Title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="http://jackocnr.com/lib/intl-tel-input/build/css/intlTelInput.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="http://jackocnr.com/lib/intl-tel-input/build/js/intlTelInput.js"></script>
</head>
<body style="font-family: arial; font-size: 14px;">
<input id="phone" type="tel">
<select id="states"></select>
<script type="text/javascript">
// Initialize
$("#phone").intlTelInput({
defaultCountry: "auto",
utilsScript: "http://jackocnr.com/lib/intl-tel-input/lib/libphonenumber/build/utils.js"
});
// event handler
$("#phone").next(".flag-dropdown").click(function() {
var country = $("#phone").intlTelInput("getSelectedCountryData").name;
country = country.split('(').shift(); // use English country name
//console.info( country );
var query = 'select name,woeid from geo.states where place="' + country + '" | sort(field="name")';
var url = (
'https://query.yahooapis.com/v1/public/yql?q=' +
encodeURIComponent( query ) +
'&format=json&diagnostics=true&callback=?'
);
$.getJSON( url, function( data ) {
setOptions('#states', data.query.results.place );
});
});
// update dropdown
function setOptions( selector, data ) {
var $el = $( selector );
$el.empty();
if (!data) return;
$.each( data, function( i, obj ) {
$el.append($("<option></option>").attr( 'value', obj.name ).text( obj.name ));
});
}
</script>
</body>
</html>
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 事件和状态
- 获取选择框的状态
- 用与线条相同的颜色填充多折线图上的点
- 在UI路由器中以抽象状态填充常见视图
- 无法使用国家/地区选择中的状态动态填充下拉列表
- 如何禁用typeahead:在远程typeahead.js中聚焦已填充的文本字段时处于活动状态
- 保持提交按钮处于禁用状态,直到填充动态创建的必填字段
- 如何使用 Reactjs 用组件的状态填充模态表单
- Highcharts 图形默认系列填充颜色覆盖状态填充颜色(包括 jsfiddle)
- Jquery/AJAX 填充的 HTML 表单(当下拉列表处于选中状态时)
- 以程序方式设置时,未在视图模型中填充选中状态
- IE7,8悬停状态不工作时,使用下划线模板填充html
- React Native:不使用状态填充表单(无状态表单)
- 我怎么能隐藏形式字段(城市& quot;状态),直到zip被填充
- ReactJS-如何从通过获取数据填充的道具中正确初始化状态
- 从国际电话输入插件Javascript中选择后填充状态下拉框
- 使用ASP.NET AJAX填充列表后更新视图状态