Я хочу сделать что-то вроде:
1. 1296
2. 4624
Square root both numbers and add the result!
Answer: ________
[Check button]
и откройте somewhere.html
если ответ правильный
Я сделал этот скрипт:
<html>
<head>
<script language="javascript">
window.onload=calc;
function calc() {
var num1, num2, sqNum1, sqNum2, randomNum, sum, ans;
num1=Math.floor(Math.random()*90)+10;
num2=Math.floor(Math.random()*90)+10;
sqNum1=num1*num1;
sqNum2=num2*num2;
sum=num1+num2;
document.write("1. " + sqNum1 + "<br />");
document.write("2. " + sqNum2 + "<br />");
document.write("<br />");
}
function checkAns(form) {
if (form.ans.value==sum) {
location="somewhere.html";
} else {
alert ("Wrong answer!");
}
}
</script>
</head>
<body>
Square root both numbers and add the result! <br />
<form name='question'>
Answer: <input name='ans' type='password'> <br />
<input type='button' value='Check' onClick='checkAns(this.form)'>
</form>
</body>
</html>
Что бы я ни пытался, он никогда не отображает эту часть:
Square root both numbers and add the result!
Answer: ________
[Check button]
Что не так с этим скриптом?
Вам нужно что-то вроде этого:
<html>
<head>
<script language="javascript">
function calc() {
var num1, num2, sqNum1, sqNum2, randomNum, sum, ans;
num1=Math.floor(Math.random()*90)+10;
num2=Math.floor(Math.random()*90)+10;
sqNum1=num1*num1;
sqNum2=num2*num2;
sum=num1+num2;
document.getElementById("sum").value = sum;
var question = document.getElementById("question");
var numbers = document.getElementById("numbers");
var br = document.createElement('br');
var txt = document.createTextNode("1. " + sqNum1);
numbers.appendChild(txt);
numbers.appendChild(br);
var txt = document.createTextNode("2. " + sqNum2);
numbers.appendChild(txt);
txt.appendChild(question);
}
function checkAns(form) {
if (document.getElementById("ans").value == document.getElementById("sum").value) {
var newWin = open('somewhere.html','windowName','height=300,width=300');
} else {
alert ("Wrong answer!");
}
}
</script>
</head>
<body onload="calc();">
<form name='question'>
<div id="numbers">
</div>
<br/>
Square root both numbers and add the result! <br />
<div id="question">
Answer: <input id='ans' name='ans' type='password'> <br />
<input type='button' value='Check' onClick='checkAns(this.form)'>
</div>
<input id='sum' type='hidden' value=''/>
</form>
</body>
</html>
Это не лучший ответ, это один из способов, которым вы можете воспользоваться, чтобы следить за развитием
К моменту load
функции load
документ находится в закрытом состоянии.
Вы не можете write
в документ в закрытом состоянии, поэтому вызов для write
будет open
для вас.
Вызов open
будет уничтожить существующий документ.
Новый контент записывается в новый документ.
Используйте DOM-манипуляцию (createElement
, appendChild
и друзей) для редактирования существующего документа.