JS формула с условием не срабатывает - как правильно написать?

Все вопросы/проблемы по установке и использовании.
Ответить
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

JS формула с условием не срабатывает - как правильно написать?

Сообщение alcompstudio »

Есть такая формула:

([281]=24) ? (Math.ceil(([272]*[273])/([276]*[277]))+[278])*([276]*[277])*[260] : ([260]*[261])

281 - это поле с выпадающим списком, ссылка на Глобальный. Тут идет проверка по ID значения глобального списка. Если оно равно 24, то выполняется 1-я математическая операция. В противном случае - должна выполниться другая мат.операция.

260 и 261 - это поля, с Числовым типом (в принципе, как и остальные поля, которые указаны в расчете)

Вот первое условие выполняется, расчет производится как нужно, несмотря на такую длинную формулу,
http://prntscr.com/107lfta
а противоположный результат не рассчитывается, дает "0"...
http://prntscr.com/107li66

Если условия "перевернуть" - то все равно срабатывает только первое условие, а расчет в формуле после "двоеточия" не дает результата.

Также пытался через функцию сделать:

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

my_function();
function my_function()
{
my_value = [260]*[261]
  if([281]=24)
  {
   return [260]*(Math.ceil(([272]*[273])/([276]*[277]))+[278])*([276]*[277])
  }
  else
  {
    return my_value
  }
}
Точно такая же ситуация, как я не "крутил"...

Что может быть не так, может я неправильно синтаксис составил?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: JS формула с условием не срабатывает - как правильно написать?

Сообщение support »

есть такая команда как console.log()
https://www.w3schools.com/jsref/met_console_log.asp
Пишите в коде

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

console.log([281])
и таким образом проверяете значения полей.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: JS формула с условием не срабатывает - как правильно написать?

Сообщение alcompstudio »

Я не пойму что и куда вставлять...

Добавил поле для проверки с типом JS формула, в нее вставил это выражение

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

console.log([281])
http://prntscr.com/108g25v

Далее на странице открыл форму редактирования, открыл консоль через F12, переключал значение в поле 281, но никаких ошибок, кроме изначально "загруженной" такой не появилось
http://prntscr.com/108g4ku

Т.е. ошибка, которая сейчас отображается возникает как-то поочередно - через одну перезагрузку CTRL+F5 страницы
вот сейчас перегрузил, и нет ошибки http://prntscr.com/108g6b8

Я понимаю, что не то что-то делаю, возможно, но что нужно сделать и как правильно?
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: JS формула с условием не срабатывает - как правильно написать?

Сообщение nruslan2 »

попробуйте в формуле использовать двойное равно
([281]==24) ? (Math.ceil(([272]*[273])/([276]*[277]))+[278])*([276]*[277])*[260] : ([260]*[261])
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: JS формула с условием не срабатывает - как правильно написать?

Сообщение alcompstudio »

nruslan2 писал(а): 27 фев 2021, 19:23 попробуйте в формуле использовать двойное равно
([281]==24) ? (Math.ceil(([272]*[273])/([276]*[277]))+[278])*([276]*[277])*[260] : ([260]*[261])
Спасибо вам большое! Так все работает, я еще думал за это двойное равно, но как-то не дошел, решил, что у меня какая-то ошибка может.
Ответить