Аз съм начинаещ с javascript и се боря с последния си проект за клас. По същество правим онлайн тест. Това е математически тест и съм настроил формуляри с полета за въвеждане на текст за отговор и тези формуляри са в контейнери div. Опитвам се да създам функция, която при щракване върху бутон за изпращане ще изтегли стойността на въведеното от потребителя и ще използва тази стойност, за да замени формуляра като вътрешен html на div. По този начин отговорът ще бъде ангажиран и не може да бъде променен, след като потребителят изпрати своя отговор. Една ключова стъпка за това е, че цифрите на отговора се въвеждат индивидуално - поле за колона десетици, поле за единици. Опитвам се да ги изтегля отделно, да ги свържа и след това да ги сравня с изчисления действителен отговор. Действителният отговор ще замени бутона за изпращане, цветно кодиран, за да отрази дали потребителят е бил прав или не. Ето какво имам:
var firstNumber = Math.floor((Math.random()*50)+1);
var secondNumber = Math.floor((Math.random()*50)+1);
var generate = function(){
document.getElementById("addends1").innerHTML=firstNumber;
document.getElementById("addends2").innerHTML=secondNumber;
};
var evaluate = function(){
var result = firstNumber+secondNumber;
document.getElementById("button").innerHTML=result;
var tens = document.getElementById("result10s").value;
var ones = document.getElementById("result1s").value;
var entry = tens + ones;
document.getElementById("resultContainer").innerHTML=entry;
var cO = document.getElementById("cO").value;
document.getElementById("carryOverContainer").innerHTML=cO;
var answer = parseFloat(entry);
if (answer===result) {
document.getElementbyID("resultContainer").style.color="#b2f078";
} else {
document.getElementbyID("resultContainer").style.color="#e87c73";
}
};
document.getElementById("button").onclick=evaluate();
(първата функция се извиква в html тага, onload за изображението на бутона) Благодаря! Редактиране: Проблемът ми е просто, че кодът ми не прави абсолютно нищо. Не знам дали това е свързано с начина, по който извиквам функцията "оценка", или със самата функция. Искам да заменя всички полета на формуляра с техните въведени стойности и след това също да заменя бутона с правилния отговор на проблема с добавянето. Ето моят html:
<body>
<div id="carryOverContainer">
<form>
<input type="text" name="carryOver" id="cO"/>
</form>
</div>
<div id="addends1" class="addends"> </div>
<div id="addends2" class="addends"> </div>
<div id="resultContainer">
<form>
<input type="text" id="result10s" class="result">
<input type="text" id="result1s" class="result">
</form>
</div>
<div id="button" onclick=evaluate();>
<img src="next.png" alt="next" onload="generate();"/>
</div>
</body>
Подозирам, че проблемът може да се крие в това как се опитвам да изтегля и съхранявам стойностите от полетата на формуляра?