-1

我不想在我的网站上使用验证码。因此,我希望我的客户以我创建的表格键入一个特定的答案。

例如 = 什么是 3 + 4 ?而且我只希望该字段是数字 7 的键。例如,如果我的客户键入任何其他数字然后 7,则不会提交表单并要求正确答案。

我正在尝试使用 spry 小部件来执行此技巧,但即使在更改 html 代码后也多次失败。

这是代码:

<span id="sprytextfield4">
      <input type="text" name="huamn" id="huamn" />
      <span class="textfieldRequiredMsg">
          Please provide an answer
      </span>
</span>
var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4", "text", {minValue:7, maxValue:7, maxChars:1});
4

1 回答 1

0

如果您想在客户端上使用 javascript 进行验证,这是我使用过的一种快速而肮脏的方法。

注意:您仍然需要在服务器上验证相同的问题,以确保垃圾邮件发送者没有通过禁用 Javascript 来规避

jQuery

$('#submit').click(function (event) {
    var color = $('#color').val().toLowerCase();
    if (color != 'orange') {
        alert('incorrect');
    } else {
        alert('yay!');
        // submit the form
        // BUT DON'T FORGET TO VALIDATE input.color AGAIN ON THE SERVER.
    }
});

http://jsfiddle.net/g4Gu8/1/

如果您的网站对垃圾邮件发送者的重要性不高... IE:不是 StackOverflow 或 Redit,您通常可以摆脱这种类型的验证,并且几乎可以避免收到垃圾邮件。如果您的网站成为攻击的直接目标,并且编写了机器人以规避这种非常低级别的保护,您应该考虑使用许多预构建的验证码库之一,并实现服务器端和客户端验证。我无法忍受图像验证码,所以我更喜欢一种侵入性较小的“人工验证”方法。

于 2013-10-13T18:31:44.367 回答