при выполнении скрипта все значения в 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>
Последний раз редактировалось poltos-15, 12.03.2015 в 14:09.
|