#javascript #arrays #if-statement #radio-button
Вопрос:
У меня есть калькулятор/конвертер RF в L-диапазон, который я разрабатываю и разрабатываю для своей работы в FT. Теперь C-диапазон стал простым, так как мы используем только один частотный диапазон. Диапазон KU у нас есть 2 частотных диапазона. Поэтому для этого калькулятора я хочу использовать переключатели. Когда инженер проверяет Радио 1, они используют функции, закодированные для этого диапазона частот, если они проверяют Радио 2, они используют функции, закодированные для этого диапазона частот.
Что я могу сделать, чтобы вызвать это, когда радио проверено?
Должен ли я создать массив переменных, которым назначаются функции? Я довольно новичок в JS. Так что дайте мне знать, если я не совсем ясно выразился. ТИА.
Комментарии:
1. у каждого калькулятора есть функция, которая будет вмешиваться в данные..
if(button.checked){calculatorFunction_1(your_data)} else{calculatorFunction_2(your_data)}
кроме того, где находится код? в чем заключаются ошибки?2. Я еще не зашел так далеко. Я спрашивал о каком-то направлении, прежде чем опробовать его. Я заполню код, если он сработает, или если нет.
Ответ №1:
NVM. Я думаю, что нашел обходной путь.
Я буду использовать «Если a-это проверка var b = freqOne, иначе b = freqTwo».
Комментарии:
1. Это также возможно, но если вы сопоставите имена функций со значениями радио, то ваше решение будет проще в обслуживании и более элегантным, пожалуйста, смотрите мой ответ.
2. Вы можете оставить это в качестве комментария только для OP, так как вы также не уверены, сработает ли это
Ответ №2:
Вы можете сопоставить имена функций со значениями переключателей
function foo() { console.log("foo was called"); } function bar() { console.log("bar was called"); } function loremipsum() { console.log("loremipsum was called") } function test(item) { window[item.value](); }
lt;labelgt;Foo lt;input type="radio" name="something" value="foo" onclick="test(this)"gt;lt;/labelgt; lt;labelgt;Bar lt;input type="radio" name="something" value="bar" onclick="test(this)"gt;lt;/labelgt; lt;labelgt;Lorem lt;input type="radio" name="something" value="loremipsum" onclick="test(this)"gt;lt;/labelgt;
Комментарии:
1. ОК. Мне нужно уточнить: В каждом калькуляторе уже есть 3 функции: Функция восходящей связи Функция нисходящей связи Функция нисходящей связи для L-диапазона восходящей связи, поэтому переключатель будет указывать странице использовать этот набор функций вместо этого набора функций. Вот почему я просто изменю значение частоты с помощью логического значения. Его все статические формулы, кроме входных данных, которые представляют собой диапазон.
2. @CurtisRosler можете ли вы отредактировать свой вопрос с помощью кода, чтобы я мог изучить его? Я действительно верю, что мы решаем одну и ту же проблему. Но блоки if-else не очень просты в обслуживании, особенно если значения меняются со временем.