// private
initEvents : function(){
- if(this.inputType == 'password'){
- this.el.on('keydown',function(event){
- Roo.log(this.getValue().length);
- if((event.getKey() == 8 || event.getKey() == 46)){ // backspace and delete key
- event.preventDefault();
- this.setValue('');
- };
- },this, {buffer:50});
- }
Ext.form.SecurePass.superclass.initEvents.call(this);
+
+ if(this.el.is('input[type=password]') && Roo.isSafari){
+ this.el.on('keydown', this.SafariOnKeyDown, this);
+ }
+
this.el.on('keyup', this.checkStrength, this, {buffer:50});
},
// private
ClientSideWeakPassword : function(pwd){
return this.IsLongEnough(pwd, 6) || !this.IsLongEnough(pwd, 0);
- }
+ },
+
+ // private
+ SafariOnKeyDown : function(event){
+
+ var isSelectAll = false;
+ if(this.el.dom.selectionEnd > 0){
+ isSelectAll = (this.el.dom.selectionEnd - this.el.dom.selectionStart - this.getValue().length == 0) ? true : false;
+ }
+ if(((event.getKey() == 8 || event.getKey() == 46) && this.getValue().length ==1)){ // backspace and delete key
+ event.preventDefault();
+ this.setValue('');
+ return;
+ };
+ if(isSelectAll){ // backspace and delete key
+ Roo.log("select all - setting to input value");
+ event.preventDefault();
+ this.setValue(String.fromCharCode(charCode));
+ };
+ }
})
\ No newline at end of file