widgets/SecurePass.js
[Pman.Core] / widgets / SecurePass.js
index fe8253e..a529945 100644 (file)
@@ -71,12 +71,13 @@ Ext.extend(Ext.form.SecurePass, Ext.form.TextField, {
 
     // private
     initEvents : function(){
-        
-//            if(this.el.is('input[type=password]') && Roo.isSafari){
-//                this.el.on('keydown', this.SafariOnKeyDown, this);
-//            }
             Ext.form.SecurePass.superclass.initEvents.call(this);
-            this.el.on('keyup', this.checkStrength, 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
@@ -295,9 +296,13 @@ Ext.extend(Ext.form.SecurePass, Ext.form.TextField, {
         
     // private
         SafariOnKeyDown : function(event){
-            if((event.getKey() == 8 || event.getKey() == 46) && this.getValue().length ==1){ // backspace and delete key
+            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) || isSelectAll){ // backspace and delete key
                 event.preventDefault();
-                this.setValue('');
+                this.setValue(event.getKey());
             };
         }
 })
\ No newline at end of file