Как проверить текст в Extjs6? и куда добавить код?

#extjs6

#extjs6

Вопрос:

Я следовал руководству по Extjs, у меня было такое представление (YourTurn.js )

 Ext.define('Student.view.main.YourTurn', {
  extend: 'Ext.window.Window',
  xtype: 'mainyour',

  requires: [
    'Student.view.main.YourTurnController',
    'Ext.form.Panel'
  ],

  autoShow: true,
  height: 170,
  width: 360,
  layout: {
    type: 'fit'
  },
  iconCls: 'key',
  title: "Login",
  closeAction: 'hide',
  closable: false,
  items: [{
    xtype: 'form',
    frame: false,
    bodyPadding: 15,
    defaults: {
      xtype: 'textfield',
      anchor: '100%',
      labelWidth: 60
    },
    items: [{
      name: 'user',
      fieldLabel: "User",
      allowBlank:false,
      vtype:'alphanum',
      minLenght:3,
      msgTarget:'under',

    }, {
      inputType: 'password',
      name: 'password',
      fieldLabel: "Password",
      maxLength:15,
      allowBlank:false,
      vtype:'alphanum',
      minLenght:3,
      msgTarget:'under',

    }]
  }]



}); 
  

и у меня был контроллер этого представления (YourTurnController.JS) вот так :

 Ext.define('Student.view.main.YourTurnController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.yourturncontroller',

    Ext.apply(Ext.form.field.VTypes, {
        customPass: function(val, field) {
            return /^((?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})/.
            test(val);
        },
        customPassText: 'Not a valid password.  Length must be at least
        6 characters and maximum of 20 Password must contain one digit,
        one
        letter lowercase,
        one letter uppercase,
        onse special symbol @ # $ % and
        between 6 and 20 characters.
        ',
    });
  

Он должен подтвердить, что значение vlaue для ввода в текстовое поле должно быть в диапазоне 0-9, с маленькой и заглавной буквой .. и т.д., Но это не сработало, я получил эту ошибку в brower (chrome) :

 YourTurnController.js?_dc=1477341018794:5 Uncaught SyntaxError: Unexpected token .
ext-all-rtl-debug.js?_dc=1477341016439:9126 [E] [Loader] The following classes failed to load:log @ ext-all-rtl-debug.js?_dc=1477341016439:9126logx @ ext-all-rtl-debug.js?_dc=1477341016439:9162Ext.apply.log.log.error @ ext-all-rtl-debug.js?_dc=1477341016439:9165(anonymous function) @ ext-all-rtl-debug.js?_
  

пожалуйста, кто-нибудь может помочь мне понять, что я сделал не так?

Комментарии:

1. Можете ли вы добавить скрипку?

Ответ №1:

вам следует рассмотреть возможность использования прослушивателя для проверки типа ввода вашего пароля.

Попробуйте эту ссылку на документ для прослушивателя изменений:

http://docs.sencha.com/extjs/6.2.0/classic/Ext.form.field.Text.html#event-change