Sencha Touch — добавить событие KeyDown в NumberField

Я несколько дней бился головой о стену, пытаясь заставить событие KeyPress или KeyDown запускаться в текстовом поле Sencha Touch.

Я пытаюсь выполнить две вещи: 1) ограничить максимальную длину до 3 и 2) убедиться, что пользователь вводит только цифры (без букв или специальных символов)

Нет ли способа использовать Javascript для присоединения этих событий? Я использую Сенчу 2.3.1

Обновление: я пробовал использовать числовое поле, а также использовать maxLength... не работает.

   var numberfield = 
    {
        xtype: 'numberfield',
        value: textValue,
        readOnly: true,
        cls: 'opBuyoffPartialCell',
        inputCls: 'opBuyoffCenterText',
        maxLength: 3,
        enforceMaxLength: 3
    };

person Sarah Lottman    schedule 22.12.2015    source источник
comment
Почему бы вам просто не использовать числовое поле компонент вместо текстового поля с максимальной длиной 3?   -  person Monica Olejniczak    schedule 23.12.2015


Ответы (1)


Как написал @MonicaOlejniczak, используйте числовое поле .

Если вы не хотите использовать числовое поле, хотя бы взгляните на его код и убедитесь, что Sencha использует

this.getComponent().input.dom.setAttribute("type", "number");

чтобы пользователь мог вводить только числа. Таким образом, "число" ,,,, которое разрешено вашим кодом, также будет учтено.

Чтобы обеспечить maxLength, сенча уже имеет maxLength config, который доступен как в числовом, так и в текстовом поле.

person Alexander    schedule 23.12.2015
comment
К сожалению, использование числового поля не мешает пользователю вводить буквы. Кроме того, я пробовал использовать maxLength - и, похоже, это не влияет на количество разрешенных записей. Я вставил свой обновленный код выше. - person Sarah Lottman; 23.12.2015