Ej fungerande JS-kod i Internet Explorer [JS, ASP]
Hej!
Har ett gjort litet enkelt webb-app som studenter kan göra för att testa sina kunskaper. Programmet renderar ut test med tillhörande frågor utifrån pinkod och testid
Det är slutna frågor med ett antal svarsalternativ. Studenterna kan välja välja svar genom att markera checkboxarna (som tillhör respektive svar). Tanken bakom designen är att om en fråga har t.ex. två rätta svar, så kan man bocka för MAX två checkboxar utifrån t.ex. 6 svarsalternativ.
Jag styr detta via JavaScript. Men av någon anledning fungerar detta INTE i Internet Explorer (dock fungerar det i FireFox). Det hela buggar ur och användare kan liksom lite godtycklig välja hur många svarsalternativ man vill genom att bocka för checkboxarna.
Koden ser ut följande. ASP-Checkbox-Controller:
<asp:CheckBox runat="server" ID="questionCheckBox" CssClass="h3" onclick="CheckBoxClick(this)"
CheckedAnswerId="<%# Item.AnswerId %>" CheckQuestionId="<%# Item.RelatedQuestionId %>"
AmmountOfCorrectAnswers="<%# CorrectAnswerCount %>"></asp:CheckBox>
När funktionen CheckBoxClick() anropas händer följande JS-kod:
question = [];
for (var i = 0; i <= 50; i++) {
var d = 0;
question.push(d);
}
function CheckBoxClick(obj) {
var getObjectParent = obj.parentNode;
var getQuestionId = $(getObjectParent).attr("CheckQuestionId");
var getMaxChecks = ReturnCorrectAnswers(getQuestionId);
if (obj.checked) {
question[getQuestionId]++;
}
else {
question[getQuestionId]--;
}
//We passed the limit of allowed checks, disable last selection
if (question[getQuestionId] > getMaxChecks) {
question[getQuestionId]--;
obj.checked = false;
}
}
function ReturnCorrectAnswers(getQuestionId) {
var getAmmount = 0;
$("span[CheckQuestionId=" + getQuestionId + "]").each(function () {
var getMaxAnswers = $(this).attr('AmmountOfCorrectAnswers');
getAmmount = getMaxAnswers;
});
return getAmmount;
}
Ngt jag har missat?