Math.abs зачем? И posled = (1/
((1/con1)+(1/con2)+(1/con3)
)).toFixed(2). Ну и при параллельном соединении тоже тогда (con1+con2+con3).toFixed(2), коли предполагается ввод не только целых величин.
posled = Math.abs(1/(1/con1)+(1/con2)+(1/con3)).toFixed(2) ради того чтобы сделать единственное - document.getElementById('outposl').innerHTML = posled, это странно, а тем более странно объявлять эти переменные глобальными. Сначала:
document.getElementById('outposl').innerHTML = posled;
document.getElementById('outparal').innerHTML = paral;
а затем проверять корректность ввода, это нелогично, к тому же прописывать отдельно условия и действия для проверки каждого поля.
Тоже самое и здесь:
var b='при значениях ' + con1 + '' + ' ' + con2 + '' + ' ' + con3 + '\r\n';
document.getElementById('buf').innerHTML = b;
бесполезность в переменной b, а также в innerHTML так как textarea имеет свойство value, коим и нужно оперировать. И вообще, совсем непонятно назначение этого действия.
Зачем скрывать картинку не понятно, и в toggle_visibility() передавать ID, если она одна и можно сразу в функции обратиться к ней?
<main>
<div class="opis">Введите значения емкости трех конденсаторов и нажмите кнопку "Вычислить". Для отделения дробной части используйте точку.</div>
<img id="form" src="formuli.PNG" alt="forms"/>
<fieldset>
<legend>Ввод исходных данных</legend>
<label>С1 (мкф) <input type="text" id="c1"/></label>
<label>С2 (мкф) <input type="text" id="c2"/></label>
<label>С3 (мкф) <input type="text" id="c3"/></label>
</fieldset>
<fieldset>
<legend>Операции</legend>
<button onclick="calculate()">Вычислить</button>
<button onclick="clearButton()">Очистить</button>
<button onclick="toggleVisibility()">Формулы</button>
</fieldset>
<fieldset>
<legend>Результаты вычислений</legend>
<div class="box">Емкость при последовательном соединении (мкф) = <output id="series"></output></div>
<div class="box">Емкость при параллельном соединении (мкф) = <output id="parallel"></output></div>
<textarea name="text" id="buf" rows="10" cols="50" ></textarea>
</fieldset>
</main>
<script>
//если уж и объявлять глобально, то элементы, которыми в дальнейшем оперировать
var c1 = document.getElementById('c1'),
c2 = document.getElementById('c2'),
c3 = document.getElementById('c3'),
series = document.getElementById('series'),
parallel = document.getElementById('parallel'),
buff = document.getElementById('buf'),
exp = document.getElementById("form");
function calculate() {
//запятые можно и заменять
var v1 = parseFloat(c1.value.replace(',', '.')),
v2 = parseFloat(c2.value.replace(',', '.')),
v3 = parseFloat(c3.value.replace(',', '.'));
if(!v1 || !v2 || !v3) {
alert('не все данные введены!');
return;
}
series.value = (1/((1/v1) + (1/v2) + (1/v3))).toFixed(2);
parallel.value = (v1 + v2 + v3).toFixed(2);
buff.value += 'при значениях ' + v1 + '' + ' ' + v2 + '' + ' ' + v3 + '\n';
}
function clearButton() {
c1.value = '';
c2.value = '';
c3.value = '';
c1.focus();
}
function toggleVisibility() {
exp.hidden = !exp.hidden
}
</script>