如果这看起来像一个"叹息,另一个~"的问题,我感到非常抱歉,但我看得很远很远,但似乎没有一件东西适合我的需求。我看过像刽子手这样的游戏,但他们逐字逐句地做了,我不知道如何处理代码。(我承认我这边无能。我的知识非常有限)
然后我决定看看测验,但它们似乎只处理单选按钮。我尝试编辑脚本,以便它们具有输入类型的文本框,但这似乎会导致更多问题,因为我将问题从多项选择转向打开答案。
我真正想要的,是这样的基本设置:
问题
输入框
按钮(提交,我想?
在美学上没有什么花哨的,只有这三件事。
摘要:如何让我的代码检查他们对问题的回答是否是香蕉?如果单词确实是香蕉,我如何让按钮仅工作?
经过几天的搜索,我现在很迷茫。非常感谢你们为此付出的任何努力,这对我来说意义重大。
基本上,
您将提交按钮更改为普通按钮,并在提交表单之前运行JavaScript函数以检查值是否正确。像这样:
<script>
function validate() {
if (document.getElementById('check_value').value == 'banana') {
document.getElementById('myForm').submit();
}
else {
alert("Incorrect value.");
}
}
</script>
<form id='myForm' method='POST' action='process.php'>
<input type='text' id='check_value' />
<input type='button' value='Submit' onclick='validate();' />
</form>
希望有帮助。
这是一些使用 javascript 的基本客户端脚本。
使用 onkeyup
事件,我们可以测试用户在文本框中键入的值,将其与"正确"值进行比较,并根据该评估启用/禁用我们的提交按钮。
<div id="question">How do you spell "banana"?</div><br />
<form action="" method="post">
<input type="text" name="answerswer" id="answerswer" /><br />
<input type="submit" id="submit" disabled="true" />
</form>
<script type="text/javascript" language="javascript">
$("#answer").on('keyup', function() {
if ($(this).val() == "banana") {
$("#submit").removeAttr("disabled");
} else {
$("#submit").attr("disabled", "true");
}
});
</script>
正如其他人指出的那样,您需要在服务器端验证输入,以防万一用户是一个混蛋并且禁用了javascript。
<?php
if ($_POST['answer'] == "banana") {
// we're OK, do something
} else {
// return to the form and let the user know he's a cheater!
}