Разрешение не чисел во входном значении ExtJS выбора даты - PullRequest
0 голосов
/ 07 декабря 2011

Я в замешательстве. У нас есть форма ExtJS, где вводится дата рождения. Однако часто месяц или дата рождения не известны. Пользовательское соглашение состоит в том, чтобы вводить хх, когда они неизвестны - хх / хх / 1984.

Если вам нужно ввести xx, вы можете ввести, в противном случае вы можете использовать указатель даты ExtJS. Сохранение работает правильно, но если вы сохраните файл в формате xx / xx / 1984, а затем снова просмотрите форму, вместо отображения введенной даты рождения, поле будет пустым. Это потому, что ExtJS задыхается от не чисел в поле даты.

Форма PHP:

echo "<input id=\"dobDt\" name=\"dobDt\" value=\"" . getData("dobDd","textarea") . "/" . getData("dobMm","textarea"). "/" .getData ("dobYy", "textarea") . "\" type=\"text\">

ExtJs:

dobDtFormat = new Ext.form.DateField({
    fieldLabel: '',
    format: 'd/m/Y',
    maskRe : /[\Xx{1,4}\d{1,2}\/]/,
    validationEvent: false,
    allowBlank:true
});
dobDtFormat.applyToMarkup(document.mainForm.dobDt);

Ext заменяет ввод в поле даты . Любые идеи о том, как разрешить появление «хх»?

Также не уверен, как обращаться с «хх», когда появляется календарь и вы выбираете день. В идеале, мы бы хотели, чтобы «xx / xx / 1980» появлялись на входе, но когда вы открываете календарь, он интерпретируется как «01 / 01/1980» .

1 Ответ

1 голос
/ 07 декабря 2011

Поскольку ExtJS не имеет встроенной поддержки формата даты «xx», вам придется расширить объект DateField и, возможно, переопределить некоторые его функции, например:

myNamespace.MyDateField = Ext.extend(Ext.form.DateField, {
    //your configs, functions to support "xx" behavior
}

Звучит так, будто вам нужно действительно продумать и более тщательно определить, как этот компонент должен функционировать во всех возможных случаях использования. Например, как пользователь может указать, какие поля (месяц, день и / или год) должны иметь «xx» против числа? DateField не предназначен для этого, поэтому вам может потребоваться добавить некоторые поля формы для этой цели.

Подробнее о создании собственного настроенного компонента ExtJS см. В руководстве Sencha здесь: http://docs.sencha.com/ext-js/4-0/#!/guide/components

(см. Раздел «Создание пользовательских компонентов» примерно на полпути вниз по странице.)

Надеюсь, это поможет вам. Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...