PHP验证 - 输入类型“text”值必须是一个特定的单词

时间:2012-08-10 13:15:41

标签: php validation

我很抱歉,如果这看起来像是“叹息,另一个那些〜”的问题,但我看得远远不够,但似乎没有任何东西能满足我的需要。我看过像刽子手这样的游戏,但他们写了一封信,我无法弄清楚如何处理代码。 (我承认,无能为力。我的知识非常有限)

然后我决定查看测验,但他们似乎只处理单选按钮。我试图编辑脚本,以便他们有输入类型的文本框,但这似乎导致了更多的问题,因为我把问题从多项选择转为开放答案。

我真正想要的是这样的基本设置:

问题
输入框
按钮(提交,我认为?)

没有什么是美学上的,只有这三件事。

总结:如何让我的代码检查他们给问题的答案是否是例如banana?如果单词确实是香蕉,我如何让按钮只能工作?

经过几天的搜索,我很失落。非常感谢你们为此付出的努力,这对我来说意义重大。

2 个答案:

答案 0 :(得分:0)

基本上你会将提交按钮更改为普通按钮,并在提交表单之前运行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>

希望有所帮助。

答案 1 :(得分:-2)

这是一些使用javascript的基本客户端脚本。

使用onkeyup事件,我们可以测试用户在文本框中输入内容的值,将其与“正确”值进行比较,并根据该评估启用/禁用我们的提交按钮。

<div id="question">How do you spell "banana"?</div><br />
<form action="" method="post">
    <input type="text" name="answer" id="answer" /><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!
    }