ExtJS Пустое значение поля datefield
Есть поле с типом datefield:
Но есть одна проблема
Не получается сохранить пустое значение.
Т.е. если убрать (стереть, очистить) значение из поля, то оно (значение) не сохраняется, а остается прежним.
Как сохранять пустые значения?
П.С. мне нужно только выбор даты, без времени
— Решено
Все оказалось гораздо проще. ExtJS отдает пустую строку, а не null
Соответственно нужно просто в процессоре написать:
{
xtype : 'datefield'
,name : 'date'
,fieldLabel : 'Date'
,anchor : '100%'
,format : MODx.config.manager_date_format
,allowBlank : true
,emptyText : null
}БД:,'date' => array(
'dbtype' => 'date'
,'phptype' => 'date'
,'null' => true
,'default' => null
)Оно работает, т.е. сохраняет всё корректно.Но есть одна проблема
Не получается сохранить пустое значение.
Т.е. если убрать (стереть, очистить) значение из поля, то оно (значение) не сохраняется, а остается прежним.
Как сохранять пустые значения?
П.С. мне нужно только выбор даты, без времени
— Решено
Все оказалось гораздо проще. ExtJS отдает пустую строку, а не null
Соответственно нужно просто в процессоре написать:
public function beforeSet() {
if(empty($this->getProperty('date'))){
$this->setProperty('date', null);
}
} Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Но проблема в том, что this.gertValue() возвращает старое значение, а this.getRawValue() возвращает пустую строку, т.е. по сути верное значение.
Видимо после каких-то преобразований (валидаций) ExtJS возвращается к старому значению. Но как поменять поведение я не знаю, не особо силен в JS и в ExtJS.
БД
… troy.map.inc.php
....troy.js
Но надо посмотреть как там реализовано, спасибо.