Проблема с JavaScript - PullRequest
       1

Проблема с JavaScript

0 голосов
/ 15 марта 2011

Я признаю, что не думал прямо, когда писал это ...

Тест памяти

Числа ...

        </div>
        <div id="email">
            <input id="a"></input>
            <input id="b"></input>
            <input id="c"></input>
            <input id="d"></input>
            <input id="e"></input>
            <input id="f"></input>
            <input id="g"></input>
            <input id="h"></input>
            <input id="i"></input>
        </div>
        <script>
        function timeMsg()
        {
        var t=setTimeout("alertMsg()",500);
        }
        function alertMsg()
        {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="one" id="one" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet()"/>');
            document.getElementById('number').value = 'no cheating...';
            }

        function changeSet() {
            var s=setTimeout("alertYea()",500);
            var a=document.getElementById('a').innerHTML = (document.getElementById("one").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">2</p>');
            document.getElementById('number').value = '9264';
        }
        function alertYea() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="two" id="two" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet2()"/>');
            document.getElementById('number').value = 'no cheating...';

            }

        function changeSet2() {
            var a=setTimeout("alertYea2()",500);
            var b=document.getElementById('b').innerHTML = (document.getElementById("two").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">3</p>');
            document.getElementById('number').value = '38671';
        }

        function alertYea2() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="three" id="three" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet3()"/>');
            document.getElementById('number').value = 'no cheating...';

            }

        function changeSet3() {
            var a=setTimeout("alertYea3()",500);
            var c=document.getElementById('c').innerHTML = (document.getElementById("three").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">4</p>');
            document.getElementById('number').value = '938263';
        }

        function alertYea3() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="four" id="four" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet4()"/>');
            document.getElementById('number').value = 'no cheating...';

            }

        function changeSet4() {
            var a=setTimeout("alertYea4()",500);
            var d=document.getElementById('d').innerHTML = (document.getElementById("four").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">5</p>');
            document.getElementById('number').value = '8351032';
        }

        function alertYea4() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="five" id="five" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet5()"/>');
            document.getElementById('number').value = 'no cheating...';

            }

        function changeSet5() {
            var a=setTimeout("alertYea5()",500);
            var e=document.getElementById('e').innerHTML = (document.getElementById("five").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">6</p>');
            document.getElementById('number').value = '02619815';
        }

        function alertYea5() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="six" id="six" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet6()"/>');
            document.getElementById('number').value = 'no cheating...';

            }

        function changeSet6() {
            var a=setTimeout("alertYea6()",500);
            var f=document.getElementById('f').innerHTML = (document.getElementById("six").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">7</p>');
            document.getElementById('number').value = '274619523';
        }

        function alertYea6() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="seven" id="seven" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet7()"/>');
            document.getElementById('number').value = 'no cheating...';

            }

        function changeSet7() {
            var a=setTimeout("alertYea7()",500);
            var g=document.getElementById('g').innerHTML = (document.getElementById("seven").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">8</p>');
            document.getElementById('number').value = '1681324849';
        }

        function alertYea7() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="eight" id="eight" type="text"></input></br><input id="answer" type="button" value="Next" onClick="changeSet8()"/>');
            document.getElementById('number').value = 'no cheating...';

            }

        function changeSet8() {
            var a=setTimeout("alertYea8()",500);
            var h=document.getElementById('h').innerHTML = (document.getElementById("eight").value);
            document.getElementById('remember').innerHTML = ('<p id="bumper">9</p>');
            document.getElementById('number').value = '48372605629';
            emailData.data.value = h;
        }

        function alertYea8() {
            document.getElementById('remember').innerHTML = ('<h3>Times up partner, what were they?</h3></br><input name="nine" id="nine" type="text"></input></br><p id="send"></p><input id="answer" name="submit" type="button" onclick="finals()" value="Next"/>');
            document.getElementById('number').value = 'no cheating...';

            }
        function finals() {
            var i = document.getElementById('i').innerHTML = (document.getElementById("nine").value);
            document.getElementById('remember').innerHTML = ('<div id="send"><form action="mailto:hubridnoxx@gmail.com" method="POST" enctype="text/plain" name="emailData"></br><input id="data" type="text" size="20" name="data"><br><input type="submit" value="Submit and continue to letters!"></form></div>');

            emailData.data.value = a + b + c + d + e + f + g + h + i;
            }
        </script>

    </div>
</body>

Проблема заключается в последней строке,

emailData.data.value = a + b + c + d + e + f + g + h + i;

Страница возвращает только значение идентификатора ввода i, а не идентификаторов ввода a-h. Вместо этого он отображает тонны [object HTMLInputElement] для каждого входного значения идентификатора. Я даже звоню .value. Как я могу это исправить, чтобы

emailData.data.value = a + b + c + d + e + f + g + h + i;

отображает набор соответствующих значений вместо?

UPDATE:

Я объявил следующие переменные перед всеми функциями:

        var a = document.getElementById("a").value;
    var b = document.getElementById("b").value;
    var c = document.getElementById("c").value;
    var d = document.getElementById("d").value;
    var e = document.getElementById("e").value;
    var f = document.getElementById("f").value;
    var g = document.getElementById("g").value;
    var h = document.getElementById("h").value;
    var i = document.getElementById("i").value;

а теперь я только возвращаюсь ...

Ответы [ 4 ]

2 голосов
/ 15 марта 2011

Ваши переменные a-h объявлены внутри функций, поэтому они не доступны за пределами этих функций. Вам необходимо объявить a-h вне тел функций, а затем установить их значения внутри функций.

0 голосов
/ 15 марта 2011

Разрешено ли использование jQuery и вы после передачи общей цифры в emailData.data.value? Если это так, вы можете использовать это в вашей finals() функции:

var total= 0;
$('input', '#email').each(function () {
    total += parseInt($(this).val());
});
emailData.data.value = total;
0 голосов
/ 15 марта 2011

В функции, содержащей emailData.data.value = a + b + c + d + e + f + g + h + i;, i - единственная переменная, которую вы объявляете.Вы заметите, что переменные a, b и т. Д. Не объявлены ни в этой функции, ни в глобальном масштабе.

0 голосов
/ 15 марта 2011

Вы установили переменную i в строке var i = document.getElementById('i').innerHTML = (document.getElementById("nine").value);.i относится к переменной i, а не к элементу управления с идентификатором i.

Вам нужно будет сделать

var a = document.getElementById('number').value

и т. Д.

Редактировать: Ах, явидите, вы объявили ... ваши методы.Помните, что var a применяется только в фигурных скобках, которые объявлены внутри, поэтому объявите их в начале вашего скрипта, выполнив var a=0 и т. Д. Это называется «областью действия» ваших переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...