Проверка надежности пароля ExtJS

#extjs

#extjs

Вопрос:

Как проверить надежность пароля в ExtJS, я создаю окно со старым паролем, новым паролем и паролем подтверждения. Итак, как отобразить надежность пароля рядом с новым паролем, а также сообщение о соответствии пароля рядом с подтверждением пароля (в случае несовпадения паролей)

Заранее спасибо

Ответ №1:

В моем проекте я использую passwordmeter. Алгоритм, который он использует для оценки пароля, очень логичен и эффективен (что не всегда так). Я поместил его в контейнер box в formpanel. Вот мой код :

 {

            xtype: 'box',

            isFormField: true,

            autoEl: {

                tag: 'div',

                id: 'scorebarBorder',

                children: [{

                    tag: 'div',

                    id: 'score',

                    html: '0%'

                }, {

                    tag: 'div',

                    id: 'scorebar',

                    html: 'amp;nbsp;'

                }, {

                    tag: 'div',

                    id: 'complexity',

                    html: 'Too Short'

                }]

            }

        }
  

Вы должны связать свое поле пароля с событием keyup, чтобы использовать это :

 {

            xtype: 'textfield',

            inputType: 'password',

            fieldLabel: "Enter your new password",

            minLengthText: 'Type at least 4 characters',


            maxLengthText: 'Type maximum 50 characters',

            enableKeyEvents: true,

            listeners: {

                keyup: function (field, event) {

                    chkPass(field.getRawValue());

                }

            }

        }
  

Вы также можете использовать vtype для сравнения двух значений пароля, введенных пользователем :

     Ext.apply(Ext.form.VTypes, {

        password: function (val, field) {

            if (field.initialPassField) {

                var pwd = Ext.getCmp(field.initialPassField);

                return (val == pwd.getValue());

            }

            return true;

        },

        passwordText: 'The passwords entered do not match!<br/>Please Re-Type'

    });

}, this);
  

и затем :

{

         xtype: 'textfield',

        fieldLabel: "Please re-type your new password",

        inputType: 'password',


        vtype: 'password',

        initialPassField: 'firstPassword'

    }
  

Проверьте также этот сайт на наличие других вариантов проверки пароля.

Ответ №2:

Суть этого в примере проверки на сайте ExtJS:http://dev.sencha.com/deploy/ext-3.3.0/examples/form/adv-vtypes.html

Вы можете обновить панель с надежностью пароля, подключив прослушиватель к clientvalidation событию.