Index: lams_tool_scratchie/web/pages/learning/learning.jsp =================================================================== diff -u -r269c13324c6bb998631af858dc8091ad3102ef78 -r3126fb6636e4164bdc6e539eab16ed2a7618fe7e --- lams_tool_scratchie/web/pages/learning/learning.jsp (.../learning.jsp) (revision 269c13324c6bb998631af858dc8091ad3102ef78) +++ lams_tool_scratchie/web/pages/learning/learning.jsp (.../learning.jsp) (revision 3126fb6636e4164bdc6e539eab16ed2a7618fe7e) @@ -45,7 +45,7 @@ [${item.uid}, [ - "${optionDto.answer}", + "", ]], @@ -146,7 +146,7 @@ //determine if such answer is available in the list var answerRowIndex = -1; assessmentAnswers.get(itemUid).forEach(function(assessmentAnswer, index) { - if (assessmentAnswer == answer) { + if (assessmentAnswer == xmlEscape(answer)) {//comparing with escaped answer as assessmentAnswers' answers are escaped answerRowIndex = index; } }); @@ -219,7 +219,7 @@ '' + '
' + - answer + + xmlEscape(answer) + '
' + '
' + '
' + @@ -228,9 +228,17 @@ '' + ''; $("table#scratches-" + itemUid).append(trElem); - assessmentAnswers.get(itemUid).push(answer); + assessmentAnswers.get(itemUid).push(xmlEscape(answer)); } + function xmlEscape(value) { + return value.replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + //a direct replacement for Java's String.hashCode() method function hashCode(str) { return str.split('').reduce((prevHash, currVal) =>