при выполнении скрипта все значения в input удаляются
Проблема в том когда скрипт выполняется он заново перезагружает страницу а не сохраняет все значения... и результат работы скрипта - тоже не выводится в input а показывает и сразу очищает. Я пока не силен в js но в php проблема решалась когда дописал атрибут в форму action = "<?=$_SERVER['PHP_SELF']?>"
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <!--<script src="script.js"></script>--> </head> <body> <!--<?php header('Content-Type: text/html; charset=utf-8'); ?>--> <form name="reg" method="post" action="index.html" onsubmit="someFunc()" > <p>Первое число: <br /> X = <input name = "number11" type = "text" size="4" style="text-align: center"> + <input name="number12" type = "text" size="4" style="text-align: center">i</p> Оператор: <br /> <select name = "operator" > <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <p>Второе число: <br /> Y = <input name="number21" type="text" size="4" style="text-align: center"> + <input name="number22" type="text" size="4" style="text-align: center">j</p> <p><input type="submit" value="Считать" ></p> результат:<input id="rezult" > </form> <script> var gt; //document.getElementById('rezult'); //проверка данных function checkData(data) { var d = ''; var expr = new RegExp('^\\D+$','g'); if((data.match(expr)) == null){ if((data.indexOf(",")) != -1){ d = data.replace("," , "."); return Number(d); } else return Number(data); } return false; //else return (data = undefined); } function someFunc() { var output1 = '', output2 = ''; var num11 = checkData((document.forms["reg"].number11.value), 10); var num21 = checkData((document.forms["reg"].number21.value), 10); var num12 = checkData((document.forms["reg"].number12.value), 10); var num22 = checkData((document.forms["reg"].number22.value), 10); var operator = document.forms["reg"].operator.value; alert(num11 + ";" + num12 + ";" + num21 + ";" + num22 + ";" + operator); //выполнение операции switch (operator) { case '+': output1 = (num11 + num21); output2 = (num12 + num22); break; case '-': output1 = (num11 - num21); output2 = (num12 - num22); break; case '*': output1 = ((num11 * num21) - (num12 * num22)); output2 = ((num11 * num22) + (num12 * num21)); break; case '/': //деление на 0 if ((Math.sqrt(num21 * num22)) != 0) { output1 = ((num11 * num21) + (num12 * num22)) / ((Math.pow(num21, 2) + Math.pow(num22, 2))); output2 = ((num12 * num21) - (num11 * num22)) / ((Math.pow(num21, 2) + Math.pow(num22, 2))); break; } else { alert("Деление на 0"); break; } default: alert('An unknown error'); } var zn = '+'; if (output2 < 0) { zn = ''; } gt = 'Z=' + output1 + zn + output2 + 'j'; //rezult.value = gt; //document.write(gt); alert(gt); document.getElementById('rezult').value = gt; } </script> </body> </html> |
Цитата:
|
да я в курсе а как надо правильно?
|
в js, где коммит //return false, убрать //
и в-общем, для отмены submit'a используется return false |
Часовой пояс GMT +3, время: 13:48. |