我是一名数学老师。我想用我学校的网站让学生检查他们是否有正确的解决方案来解决一组在纸上单独提出的测试题。我想给学生一个文本框,他们可以在其中输入他们的解决方案,然后按一个按钮来检查它是否正确。一个正确的答案会在问题旁边显示一个“正确”的图标等。我是一个完整的初学者,但我到目前为止已经管理过:
<script>
function check(z)
{
var ans = new Array
ans[0]="522"
ans[1]="144"
if (document.getElementById('response'+z).value==ans[z])
{
document.getElementById('correct' + z).style.visibility='visible'
document.getElementById('incorrect' + z).style.visibility='hidden'
}
if (document.getElementById('response'+z).value!=ans[z] && document.getElementById('response'+z).value!='')
{
document.getElementById('correct' + z).style.visibility='hidden'
document.getElementById('incorrect' + z).style.visibility='visible'
}
if (document.getElementById('response'+z).value=='')
{
document.getElementById('correct' + z).style.visibility='hidden'
document.getElementById('incorrect' + z).style.visibility='hidden'
}
}
</script>
<img id="correct0"src="correct.jpg"style="visibility:hidden"/>
<img id="incorrect0"src="incorrect.jpg"style="visibility:hidden"/>
1a
<textarea style="width: 100px; height: 20px;"id="response0"></textarea>
<button style="height: 20px"onclick="check(0)">check</button>
<br></br>
<img id="correct1"src="correct.jpg"style="visibility:hidden"/>
<img id="incorrect1"src="incorrect.jpg"style="visibility:hidden"/>
1b
<textarea style="width: 100px; height: 20px;"id="response1"></textarea>
<button style="height: 20px"onclick="check(1)">check</button>
<br></br>
这有效,但显然非常笨重(我实际上使用Excel电子表格来生成HTML代码)。我的问题是:我可以使用javascript本身生成文本框和按钮吗?我可以混淆正确的答案(如果学生知道如何查看我的网页来源,我的考试就结束了!)。
非常感谢和祝福,
答案 0 :(得分:3)
理想情况下,您将生成并验证服务器端的解决方案。如果这不是一个选项,请删除页面中散列库的引用并验证加密哈希值的答案:
https://code.google.com/p/crypto-js/
您必须在电子表格中生成哈希值,或者使用相同的哈希库在您自己的问题生成页面中生成哈希值。
但要注意!如果您的学生可能完全熟悉JavaScript,他们仍然可以轻松打开JavaScript控制台并强制它。假设合理的答案往往是数字而且低于100万,这是非常微不足道的......
......还有一点需要注意。如果您的答案是打开的文本字段,则需要在检查之前“标准化”输入。删除多余的空格,标点符号等。
答案 1 :(得分:2)
在JavaScript中进行混淆是不可能的 - 有混淆器,但同时还有去混淆器(取决于你学生的知识,这可能是另一种选择)
编辑:以下是混淆器的示例:http://www.daftlogic.com/projects-online-javascript-obfuscator.htm,您还可以查看Google闭包:http://closure-compiler.appspot.com/home进行缩小和“混淆的种类” 但是,当我伤心的时候,几乎所有东西都可以归还。
就生成输入字段和框等而言,你应该看看jQuery:http://jquery.com/ - 它在开始时可能有点混乱,但它非常简单并且对任务有很大的帮助像这样。
如果您对主题有更深入的了解,可能需要考虑服务器端的答案验证(因此您不能阅读您的代码)。它并不像你想象的那么难,但是现在jQuery应该可以胜任。
我喜欢你的项目,我希望我能在当天找到这样的老师:)