он не позволяет мне выбирать кнопки, если что-то введено в текстовое поле - PullRequest
0 голосов
/ 11 декабря 2011

В моем приложении происходит то, что пользователь выбирает кнопку, щелкая ссылку (открыть сетку) и выбирая кнопку.Затем происходит то, что внизу появляется набор кнопок в зависимости от того, что выбрал пользователь.Пользователь может определить, сколько ответов он хочет выбрать в текстовом поле (другими словами, сколько кнопок пользователь хочет выбрать).Например, если пользователь вводит «2» в текстовое поле, пользователь может выбрать только 2 кнопки ниже.Проблема состоит в том, что, если пользователь вводит число в текстовом поле, он не позволяет пользователю выбрать кнопку (кнопка выбирается, если цвет кнопки становится зеленым).но если я уберу число, которое находится в текстовом поле, то, если я нажму на кнопку, появится сообщение с предупреждением о том, что вы должны определить количество желаемых ответов, это правильно.

Итакпочему он не позволяет мне выбирать какие-либо кнопки, если в текстовом поле «Количество ответов» есть число?

Код указан в jsfiddle, нажмите здесь

СпасибоВы

1 Ответ

0 голосов
/ 11 декабря 2011

Откройте консоль браузера.Когда вы нажмете кнопку, вы увидите следующую ошибку:

Uncaught ReferenceError: currenttotal is not defined

Она выдается этой строкой кода:

console.log(currenttotal);

enter image description here


Существует еще одна проблема, которая, по-видимому, препятствует инициализации currenttotal:

enter image description here


Если поставить точку останова на этой строке: var letter = $('#numberAnswerTxt').val(); (внутриgetButtons), я вижу, что переменная "letter" - это строка, которая выглядит как "3".Строки не имеют свойства с именем String, поэтому letter.String не определено.Вот почему TypeError: Cannot call method 'fromCharCode' of undefined выбрасывается.

Так что я думаю , что цикл for должен выглядеть примерно так:

for(var i = 65; i <= 90; i++) { // iterate over character codes for A to Z
    var letter = String.fromCharCode(i);
    document.getElementById("answer" + letter).className = "answerBtnsOff";
}

Поскольку вы используетеjQuery, вы можете сделать тело цикла более кратким:

for(var i = 65; i <= 90; i++) { // iterate over character codes for A to Z
    var letter = String.fromCharCode(i);
    $("#answer" + letter).prop("class", "answerBtnsOff");
}

Теперь это работает

http://jsfiddle.net/mattball/ZCehW/

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