@dim5on

Как сделать простую валидацию на JS внутри теста по английскому?

Здравствуйте товарищи !
Имеется такой кусочек теста для сайта на JS по английскому языку:
Подскажите как сделать простую валидацию, сначала что бы проверяла что на всех вопросах выставлен вариант ответа input[type=radio], потом данные формы обратной связи(имя, почта, телефон) ?
<form name="quiz" id="english-quiz"  method="post">
            <div class="container">
                <ol>
                    <script>
                        for(var q=0; q<questions.length; ++q) {
                            var question = questions[q];
                            var idx = 1 + q;
                            document.writeln('<li class="test-li"><span class="quest quote__main">' + question.text + '</span><br/>');
                            for(var i in question.answers) {
                            document.writeln('<input type=radio name="q' + idx + '" value="' + i + '" onClick="Engine(' + q + ', this.value)"  id="test-radio">' + question.answers[i] + '<br/>');
                        }
                    }
                    </script>
                </ol>
            </div>
            <div class="result-field">
                    <input type="text" placeholder="Имя" id="test-name">
                    <input type="tel" placeholder="Телефон" id="test-phone">
                    <input type="email" placeholder="Почта" id="test-email">
                    <input  class="btn btn-yellow btn-yellow--white footer__btn test-btn" placeholder="Получить результат" onClick="Score()">
                    <br>
                    <textarea name="area" id="textArea" cols="60" rows="30"></textarea>
            </div>
        </form>

var questions=[
{
    text: "Malaga ____ 754 years old.",
    answers: ["is", "are", "be"],
    correctAnswer: 0 // нумерация ответов с нуля!
},
{
    text: "She____believe it.",
    answers: ["dont", "isnt", "doesnt"],
    correctAnswer: 2
},
{
    text: "___there a river near Cathedral?",
    answers: ["are", "do", "is"],
    correctAnswer: 2
}
];

var yourAns = new Array;
var score = 0;

function Engine(question, answer) {yourAns[question]=answer;}

function Score(){
   var answerText = "Здравствуйте\n";
   for(var i = 0; i < yourAns.length; ++i){
    var num = i+1;
    answerText=answerText+"\n    Вопрос №"+ num +"";
    if(yourAns[i]!=questions[i].correctAnswer){
        answerText=answerText+" Не Верно!";
      }
        else{
        answerText=answerText+": Верно! \n";
        ++score;
        }
       }
    answerText=answerText+"\n Всего правильных ответов: "+score+ " из 25";


   if(score >= 0 && score <= 2){
    answerText=answerText+"\n Ваш уровень Beginner \n";
   }
   else if (score >= 3 && score <=11) {
    answerText=answerText+"\n Ваш уровень Elementary A1  \n";
   }      
   answerText=answerText+ "\n Имя пользователя: " + document.getElementById("test-name").value;
   answerText=answerText+ "\n Телефон пользователя: " + document.getElementById("test-phone").value;
   answerText=answerText+ "\n Почта пользователя: " + document.getElementById("test-email").value;
   document.getElementById("textArea").innerHTML = answerText;
   yourAns = [];
   score = 0;
   clearForm("quiz");
}
function clearForm(name) {
   var f = document.forms[name];
   for(var i = 0; i < f.elements.length; ++i) {
    if(f.elements[i].checked)
        f.elements[i].checked = false;
  }
    document.quiz.reset();
}
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
поставьте полям, обязательным для заполнения атрибут required
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы