javascript代码,以防止机器人提交表单

时间:2012-03-14 11:26:40

标签: javascript captcha bots

我需要一个javascript代码来阻止机器人提交表单。 但我需要一个javascript中的客户端代码,它像CAPTCHA一样工作但不调用服务器

谢谢

3 个答案:

答案 0 :(得分:3)

最简单直接的方法是在实际点击按钮时即时添加或编辑表单数据:

<input type="hidden" name="SubmittedByHuman" value="NO" />
<input type="submit" value="Submit me" onclick="this.form.elements['SubmittedByHuman'] = 'YES';" />

有了这个,在服务器端检查名为“SubmittedByHuman”的表单元素的值 - 如果它将是“NO”则意味着绕过了提交按钮 - 或者正如人们在评论中提到的那样,用户确实点击了但已禁用的JavaScript。

答案 1 :(得分:1)

做类似

的事情
<h1>Type the result in the input box : 1+1</h1>

<input id="sum" type="text"/>

在提交之前,检查输入中的值是否为2,然后提交。

要改进这种类型的代码,您可以在h1中随机创建这两个值并将它们保存到var中,然后在提交之前检查输入和总和是否相同。

答案 2 :(得分:1)

我怀疑这是可能的,因为机器人足够精通以绕过大多数事情。

请记住,机器人不会在浏览器中打开网页并按提交。它可能会扫描页面中的<form>,列出所有<input>个字段,然后执行POST请求,其中包含每个字段的所有数据。

它不会运行任何JavaScript,或按任何按钮。你必须在服务器端进行检查。