Обработка событий. Связать radiobutton с button

147
01 июня 2019, 19:00

У меня есть форма в ней в зависимости от выбора радио кнопки вычисляется площадь. Как связать радиокнопку с кнопкой? jsfiddle

<form action="areaOfFigure.js">
        <div class="row">
            <div class="col-md-4 card">
                <div class="card-body">
                    <h2>Вычисление площади треугольника</h2>
                    <label for="aSide">Введите сторону a: <input type="text" name="aSide" id="aSide" /></label>
                    <label for="bSide">Введите сторону b: <input type="text" name="bSide" id="bSide" /></label>
                    <label for="cSide">Введите сторону c: <input type="text" name="cSide" id="cSide" /></label>
                    <label><input onchange="" id="triangle" type="radio" name="radio-buttons" value="1">Площадь треугольника</label>
                </div>
                <label for="outPut">Вывод: <input type="text" name="outPut" id="outPut" /></label>
            </div>
            <div class="col-md-4 card">
                <div class="card-body">
                    <h2>Вычисление площади трапеции</h2>
                    <label for="aBase">Введите основу a: <input type="text" name="aBase" id="aBase" /></label>
                    <label for="bBase">Введите основу b: <input type="text" name="bBase" id="bBase" /></label>
                    <label for="hHeight">Введите высоту h: <input type="text" name="hHeight" id="hHeight" /></label>
                    <div><label><input onchange="" id="trapezium" type="radio" name="radio-buttons" value="2">Площадь трапеции</label></div>
                </div>
                <label for="outPut">Вывод: <input type="text" name="outPut" id="outPut" /></label>
            </div>
            <div class="col-md-4 card">
                <div class="card-body">
                    <h2>Вычисление площади круга по диаметру</h2>
                    <label for="Ddiameter">Введите D (внешний диаметр кольца): <input type="text" name="Ddiameter" id="Ddiameter" /></label>
                    <label for="ddiameter">Введите d (внутренний диаметр кольца): <input type="text" name="ddiameter" id="ddiameter" /></label>
                    <div><label><input onchange="" id="ring" type="radio" name="radio-buttons" value="3" />Площадь круга</label></div>
                </div>
                <label for="outPut">Вывод: <input type="text" name="outPut" id="outPut" /></label>
            </div>
        </div>
        <div class="center"><input onclick="" type="button" name="Solution" id="solution" class="btn btn-outline-success" value="solution" /></div>
    </form>

'use strict' 
 
function calculateAreaTriangle() { 
  a = document.getElementById("aSide"); 
  b = document.getElementById("bSide"); 
  c = document.getElementById("cSide"); 
  p = (a + b + c) / 2; 
  s = Math.sqrt(p * (p - a) * (p - b) * (p - c)) 
  document.getElementById("outPut") = s; 
} 
 
function calculateAreaTrapezium() { 
  a = document.getElementById("aBase"); 
  b = document.getElementById("bBase"); 
  h = document.getElementById("hHeight"); 
  s = ((a + b) / 2) * h; 
  document.getElementById("outPut") = s; 
} 
 
function calculateAreaRing() { 
  D = document.getElementById("Ddiameter"); 
  d = document.getElementById("ddiameter"); 
  s = (Math.PI * (D * D - d * d) / 4); 
  document.getElementById("outPut") = s; 
}

Answer 1

Лучше наверное поменять radio на checkbox (чтобы можно было его убрать) и в каждой функции делать проверку на "checked" и в зависимости от состояния производить действия

function calculateAreaTriangle() {
    if(document.getElementById("myCheck").checked){
        ...
    }else{
        ...
    }
}
READ ALSO
setBounds проблема со скрытым блоком

setBounds проблема со скрытым блоком

В общем, суть проблемы в том, что карта инициализируется, потом в какой-то момент N вызывается setBoundsВидимо, из-за того, что блок в котором находится...

131
Поле для ввода даты, как изменить значение по умолчанию на текст?

Поле для ввода даты, как изменить значение по умолчанию на текст?

Как изменить значение по умолчанию на текст ? например, в инпуте по умолчанию написано ддмм

125
Ошибка в mysql | |Mysqldump

Ошибка в mysql | |Mysqldump

разбираюсь в книге Робин Никсон сооздаем динамимечские веб сайтызастраял на mysqldump

126
Как создать и связать базу данных для Yii2?

Как создать и связать базу данных для Yii2?

Только-только начал изучать MySQL в связи с установкой приложения на сервер с фреймворком Yii2

143