Получить ценность радио, чтобы переносить страницы с Javascript

0

Я пытаюсь создать очень простую игру для точечной игры как домашнее задание, и я не могу понять, как переносить выбор сложности с индексной страницы на фактическую страницу игры.

Главная страница

<form id="difficulty" name="difficulty" action="game.html">
  <input type="radio" name="diff" id="easyDiff" value="easy">
  <label for="easyDiff">Easy</label>
  <input type="radio" name="diff" id="medDiff" value="medium" checked="checked">
  <label for="medDiff">Medium</label>
  <input type="radio" name="diff" id="hardDiff" value="hard">
  <label for="hardDiff">Hard</label>
  <input type="submit" value="Start Game!" onClick="setDifficulty()"/>
</form>

Игровая страница

<html>
  <head>
    <title>DotSmasher</title>
    <link rel="stylesheet" href="dotSmasher.css" type="text/css">
    <script src="dotSmasher.js" type="text/javascript"></script>
  </head>

  <body onLoad="setGameAreaBounds(); startGameTimer()" onResize="setGameAreaBounds()">
    <div id="scoreLabel">Score: 0</div>
    <div id="pageTitle">DotSmasher</div>
    <div id="start">
      <button id="startButton" onClick="start()">Start</button>
    </div>
    <div id="stop">
      <button id="stopButton" onClick="pause()">Stop</button>
    </div>
    <div id="gameArea">
      <button id="dot" onClick="detectHit()"></button>
    </div>
  </body>
</html>

Код JavaScript

Количество переменных, таймер и трудность создаются в начале страницы.

var score = 0;
var aWidth;
var aHeight;
var timer;

var count = 30;
var counter = setInterval(startGameTimer, 1000);
var difficulty;

function startGameTimer(){
    count -= 1;
    if (count <= 0){
        clearInterval(counter);
        clearTimeout(timer);
        alert("Game has ended, Thank you for playing on " + difficulty + "!");
        return;
    }

}

function setDifficulty(){
    var radioButtons = document.getElementsByName("diff");
    for (var i = 0; i < radioButtons.length; i++) {
        if (radioButtons[i].checked) {
            difficulty = radioButtons[i].value;

        }
    }
}

По какой-то причине я получаю неопределенную ошибку и не могу понять, что это может быть.

  • 0
    поскольку вы перемещаетесь с одной страницы на другую, переменные, созданные на странице 1, не будут доступны на странице 2 ... вы можете посмотреть на cookie / WebStorage как на решение для временного хранения данных
  • 0
    Арун, я ничего не знаю о печенье, и я считаю, что это выходит за рамки этого курса. Тем не менее, как заядлый ученик, я воспользуюсь вашим выбором, чтобы увидеть, какие результаты он может иметь. Будет ли это правильно? htmlgoodies.com/beyond/javascript/article.php/3471111
Теги:

1 ответ

1

Вам нужно поставить свой скрипт вверху страницы и в head теге, попробуйте следующее:

<script>
    function setDifficulty(){
        var radioButtons = document.getElementsByName("diff");
        for (var i = 0; i < radioButtons.length; i++) {
            if (radioButtons[i].checked) {
                difficulty = radioButtons[i].value;
                alert(difficulty);
            }
        }
    }
</script>
<input type="radio" name="diff" id="easyDiff" value="easy">
        <label for="easyDiff">Easy</label>
        <input type="radio" name="diff" id="medDiff" value="medium" checked="checked">
        <label for="medDiff">Medium</label>
        <input type="radio" name="diff" id="hardDiff" value="hard">
        <label for="hardDiff">Hard</label>
        <input type="submit" value="Start Game!" onclick="setDifficulty();"/>

Вот ДЕМО

  • 0
    К сожалению, это не работает, переменная сохраняется на этой странице, но когда я перехожу на саму игру, я получаю неопределенную ошибку
  • 0
    Не могли бы вы дать / показать мне свою страницу! Я исправлю это для тебя
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню