vahrammer

vahrammer

С нами с 20 мая 2018; Место в рейтинге пользователей: #1878
vahrammer
24 мая 2018, 17:16
0
Короче, прямо в методе getFields перед оператором return запилил такой костыль:
if (config.record.availability === undefined) {
  setTimeout(function() {
    document.getElementById('modx-resource-availability').checked = true;
  }, 0)
}
Теперь у новых товаров поле отмечено по умолчанию.
vahrammer
24 мая 2018, 16:56
0
Добрый день.
Я посмотрел на тип у config.record.availability — это boolean, если товар редактируется, и нет такого свойства — если новый. Немного не понял, зачем здесь тогда parseInt(). Для true, false и undefined parseInt() вернёт NaN в JS.
Я не понимаю, почему это работает у человека, который ответил ниже, так в приведенном примере исходя из того, что console.log показывает свойству всегда будет NaN присваиваться.

Я бы тоже хотел, чтобы этот чекбокс был отмечен, запилил так
checked: config.record.availability === undefined ? true : config.record.availability
Но что-то у нового товара один чёрт чекбокс пустой, у редактируемого — всё нормально. Из чего я бы сделал вывод, что-то другое на чекбокс влияет.

Можно конечно костыльнуть, у чекбокса есть id (и вроде он постоянный). Я новичек в ModX, но вроде в onDocFormRender можно JS вставить и там отметить этот чекбокс JS-ом.
vahrammer
20 мая 2018, 07:07
0
Подтверждаю проблему автора сообщения. Все поля скрываются, кроме поля «content».
Первое, что на ум пришло, скрывать это поле JS-ом. Но выяснил, что у поля нет стабильного id. Надо копать дальше…