widgets/SecurePass.js
[Pman.Core] / widgets / SecurePass.js
index 07877f4..f59e557 100644 (file)
@@ -71,22 +71,15 @@ Ext.extend(Ext.form.SecurePass, Ext.form.TextField, {
 
     // private
     initEvents : function(){
-            if(this.inputType == 'password'){
-                Roo.log(this.el);
-                this.el.on('keydown',function(event){
-                    Roo.log('before');
-                    Roo.log(this.el.getValue());
-                    Roo.log(this.el.getValue().length);
-                    if(event.getKey() == 8){
-                        Roo.log('in');
-                        Roo.log(this.el.getValue());
-                        Roo.log(this.el.getValue().length);
-                        event.preventDefault();
-                        this.setValue('');
-                    };
-                },this);
-            }
             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("focus", function(){
+//                    this.setValue('');
+//                }, this);
+            }
+
             this.el.on('keyup', this.checkStrength, this, {buffer:50});
        },
 
@@ -302,5 +295,18 @@ Ext.extend(Ext.form.SecurePass, Ext.form.TextField, {
     // private
        ClientSideWeakPassword : function(pwd){
                return this.IsLongEnough(pwd, 6) || !this.IsLongEnough(pwd, 0);
-       }
+       },
+        
+    // private
+        SafariOnKeyDown : function(event){
+            Roo.log(this.el);
+            Roo.log('start : ' + this.el.dom.selectionStart);
+            Roo.log('end : ' + this.el.dom.selectionEnd);
+            Roo.log('length : ' + this.getValue().length);
+            var isSelectAll = this.el.dom.selectionEnd - this.el.dom.selectionStart - this.getValue().length;
+            if(((event.getKey() == 8 || event.getKey() == 46) && this.getValue().length ==1) || isSelectAll == 0){ // backspace and delete key
+                event.preventDefault();
+                this.setValue('');
+            };
+        }
 })
\ No newline at end of file