Roo.extend(Roo.bootstrap.PhoneInput, Roo.bootstrap.TriggerField, {
- triggerList : true,
-
listWidth: undefined,
selectedClass: 'active',
invalidClass : "has-warning",
- allCountries: false,
-
- dialCodeMapping: false,
-
- keyUpDelay: 500,
-
validClass: 'has-success',
+ allowed: '0123456789',
+
+ /**
+ * @cfg {String} defaultDialCode The default dial code when initializing the input
+ */
defaultDialCode: '+852',
+ /**
+ * @cfg {Array} preferedCountries A list of iso2 in array (e.g. ['hk','us']). Those related countries will show at the top of the input's choices
+ */
preferedCountries: false,
- //white list / black list for countries?
-
getAutoCreate : function()
{
var data = Roo.bootstrap.PhoneInputData();
var align = this.labelAlign || this.parentLabelAlign();
var id = Roo.id();
+ this.allCountries = [];
+ this.dialCodeMapping = [];
+
for (var i = 0; i < data.length; i++) {
var c = data[i];
this.allCountries[i] = {
};
var container = {
- cls: 'roo-select2-container input-group',
+ cls: 'roo-select2-container input-group phone-input-group',
cn: [
flag_container,
box
this.list.on('mouseover', this.onViewOver, this);
this.list.on('mousemove', this.onViewMove, this);
- //this.list.on('scroll', this.onViewScroll, this);
this.inputEl().on("keyup", this.onKeyUp, this);
this.tpl = '<li><a href="#"><div class="flag {iso2}"></div>{name} <span class="dial-code">+{dialCode}</span></a></li>';
onTriggerClick : function(e)
{
Roo.log('trigger click');
- if(this.disabled || !this.triggerList){
+ if(this.disabled){
return;
}
cls: 'typeahead typeahead-long dropdown-menu tel-list',
style: 'display:none'
});
- this.list.setVisibilityMode(Roo.Element.DISPLAY).originalDisplay = 'block';;
+
+ this.list.setVisibilityMode(Roo.Element.DISPLAY).originalDisplay = 'block';
},
collapseIf : function(e)
this.validate();
},
- getDialCode : function(v = '')
+ getDialCode : function(v)
{
+ v = v || '';
+
if (v.length == 0) {
return this.dialCodeHolder.dom.value;
}
return this.el.select('input.hidden-tel-input',true).first();
},
- onKeyUp : function(e)
- {
- Roo.log(e.getKey());
+ onKeyUp : function(e){
+
+ var k = e.getKey();
+ var c = e.getCharCode();
+
+ if(
+ (String.fromCharCode(c) == '.' || String.fromCharCode(c) == '-') &&
+ this.allowed.indexOf(String.fromCharCode(c)) === -1
+ ){
+ e.stopEvent();
+ }
+
+ // if(!Roo.isIE && (e.isSpecialKey() || k == e.BACKSPACE || k == e.DELETE)){
+ // return;
+ // }
+ if(this.allowed.indexOf(String.fromCharCode(c)) === -1){
+ e.stopEvent();
+ }
+
this.setValue(this.getValue());
}