При переключении radio button не работает функция

85
24 мая 2021, 15:50
Нужно чтобы при переключении кнопки работала функция и высчитывала корни,            но у меня каждый раз работает одна и та же.

document.forms[0].reset(); 
function cl(){ 
  document.getElementById('square').disabled = true;  
} 
function cl1(){ 
document.getElementById('square').disabled = false; 
} 
function check(){ 
  var rad = document.getElementsByName('radio'); 
    for (var i = 0; i<rad.length; i++){ 
      if (rad[0].checked){ 
        linear_equation(); 
        break; 
      } 
      if(rad[1].checked){ 
        square_equation(); 
        break; 
      } 
    } 
  } 
function linear_equation(){ 
  var a = document.square.square_a.value; 
  var b = document.square.square_b.value; 
  var sol = document.getElementById("square_sol"); 
    if ( (a==0) && (b==0)){ 
      string = 'Решений бесконечно много'; 
    } 
    if ((a==0) && !(b==0)){ 
      string = 'нет решения'; 
    } 
    if(!(a==0)){ 
      string = -b/a; 
    } 
    sol.innerHTML = string; 
} 
function clearout(){ 
  document.forms[0].reset() 
   document.forms[0].square_a.value="" 
   document.forms[0].square_b.value="" 
   document.forms[0].square_c.value="" 
} 
function square_equation() { 
  var a = document.square.square_a.value; 
  var b = document.square.square_b.value; 
  var c = document.square.square_c.value; 
  var sol = document.getElementById("square_sol"); 
 
  var d = b * b - 4 * a * c; 
  if ( d < 0 ) { 
    string = "пара комплексно-сопряженных корней<br>x<sub>1</sub> = ("; 
    string += - b / ( 2 * a ); 
    string += ", "; 
    string += Math.sqrt( -d ) / ( 2 * a ); 
    string += "), x<sub>2</sub> = ("; 
    string += - b / ( 2 * a); 
    string += ", "; 
    string += - Math.sqrt( -d ) / ( 2 * a ); 
    string += ")."; 
  } else { 
      if ( d == 0 ) { 
        string = "два одинаковых вещественных корня:<br>x<sub>1</sub> = x<sub>2</sub> = "; 
        string += -b / ( 2 * a ); 
        string += "."; 
      } else { 
        string = "два различных вещественных корня:<br>x<sub>1</sub> = "; 
        string += -b / ( 2 * a ) - Math.sqrt( d ) / ( 2 * a ); 
        string += ", x<sub>2</sub> = "; 
        string += -b / ( 2 * a ) + Math.sqrt( d ) / ( 2 * a ); 
        string += "."; 
      } 
  } 
  sol.innerHTML = string; 
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 	 
<html> 
<head> 
<title>Решение линейного уравнения</title> 
<style> 
INPUT, SELECT {font-size:14pt} 
</style>   
 
</head> 
<body style="font-size:12pt" > 
<form name="square" action="javascript:square_equation()"> 
        <input name = "radio" type="radio" value="lin" onclick="cl()">Линейное уравнение 
        <input name = "radio" type="radio" onclick ="cl1()" value="gua">Квадратное уравнение 
                a <input name="square_a" type="text" value="1" size="4"> 
                b <input name="square_b" type="text" value="2" size="4"> 
                c <input id = 'square' name="square_c" type="text" value="1" size="4"> 
                <input name="" type="button" value="Очистить" onClick="clearout()"> 
                <input type="submit" value="посчитать" onclick="check()" > 
                </form> 
                 
Решение: <span id="square_sol">Введите коэффициенты и нажмите "посчитать"</span> 
 
    <script src = "./z1.js"></script> 
</body> 
</html>

Answer 1

Попробуй убрать атрибут action="javascript:square_equation()" из <form>. Это действие триггерит кнопка с атрибутом type="submit"

READ ALSO
Как этот jQuery код выглядел бы на чистом javascript?

Как этот jQuery код выглядел бы на чистом javascript?

Здраствуйте! Пишу сайт по продаже косметики для портфолиоСам сайт написан полностью на чистом javascript

107
React-spring анимация после анимации

React-spring анимация после анимации

Как с помощю библиотеки react-spring или просто с помощю react и css , сделать анимацию после анимацииК примеру у меня есть div и я хочу сначала увеличить...

117
как добавить AJAXом sql запрос

как добавить AJAXом sql запрос

не получается сделать запрос на добавление записи с помощью AJAXJS срабатывает, вроде нормально, насколько я понимаю у меня где-то ошибка в PHP

133