Страница 1 из 1

Логическое поле (Флажок)

Добавлено: 16 апр 2019, 14:20
meu3
Как оно должно работать?
Создал поле этого типа - Логическое поле (Флажок) = [1189]
Пытаюсь использовать в JS формуле - [1189] ? [882]*2 : [882]*[883]
Не срабатывает вне зависимости от состояния флажка.
Что не так?

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 14:31
support
Вам нужно проверять состояние флажка, пример кода такой:

Код: Выделить всё

$("#fields_1189").is(':checked') ? [882]*2 : [882]*[883]

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 15:27
meu3
Спасибо!
А где можно посмотреть синтаксис аналогичных JS скриптов?

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 15:29
meu3
$("#fields_1189").is(':checked') ? [882]*2 : [882]*[883] - не работает...
Входит в режим ожидания...

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 16:25
support
Проверил, ошибки с кавычками допустил. Попробуйте так:

Код: Выделить всё

$('#fields_1189').is(':checked') ? [882]*2 : [882]*[883]

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 17:04
meu3
Так работает, но для JS формулы - странно.
Если изменяю значения числовых полей из формулы - пересчитывает и сразу отображает.
Если включаю/выключаю флажок - вроде как пересчитывает, но отображения сразу - не происходит.
Такое впечатление, что нужно где-то включить динамическое обновление.

ЗЫ: Если можно ссылку на документацию, где написано и про одинарные кавычки и про формат полей.
Где, например, можно прочесть про

Код: Выделить всё

$('#fields_1189').is(':checked')

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 18:26
support
Дело в том, что такой тип поля просто не поддерживался ранее в поле "JS формуле"
Я доработал код для 2.5, замените файл из архива в папку includes\classes\fieldstypes\
Далее саму формулу замените на:

Код: Выделить всё

[1189].is(':checked') ? [882]*2 : [882]*[883]
И теперь событие при нажатии на флажок будет обрабатываться автоматически. Сообщите результат.

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

Касательно остальной документации, то тут дело в том что вы пишите чистый javascript. [882] - это значение поля, а все остальная логика javascript
Тут есть пример как использовать свою функцию на javascript
http://blog.rukovoditel.net/ru/kak-ispo ... i-funkcii/

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 18:42
support
Я тут подумал и от конструкции ".is(':checked')" так же можно избавиться.
Файл из архива замените в includes\classes\fieldstypes\
А формулу измените на

Код: Выделить всё

[1189] ? [882]*2 : [882]*[883]
Сообщите результат.

Re: Логическое поле (Флажок)

Добавлено: 16 апр 2019, 19:09
meu3
Да! Так работает. Спасибо!