javascript代码,以防止提交表单
答
这样做
<h1>Type the result in the input box : 1+1</h1>
<input id="sum" type="text"/>
之前提交你检查的值输入是2,然后提交它。
为了改进这种类型的代码,你可以在h1中随机创建这两个值,并将它们保存到var中,并在提交前检查输入和sum是否相同。
答
最直接,最简单的方法将是在飞行中添加或编辑表单数据当按钮被实际点击:
<input type="hidden" name="SubmittedByHuman" value="NO" />
<input type="submit" value="Submit me" onclick="this.form.elements['SubmittedByHuman'] = 'YES';" />
到这一点,在服务器端检查表单元素叫值“ SubmittedByHuman“ - 如果它是”否“,则意味着绕过了提交按钮 - 或者正如人们在评论中正确提到的那样,用户确实点击了但已禁用了JavaScript。
答
我怀疑这是可能的,因为机器人足够复杂以绕过大多数事情。
请记住,机器人不打算在浏览器中打开网页,然后按提交。它可能会扫描页面寻找<form>
,制作所有<input>
字段的列表,然后执行包含每个字段所有数据的POST请求。
它不会运行任何JavaScript,或按任何按钮。你必须做检查服务器端。
[纯JavaScript/jQuery/HTML验证码]的可能重复(http://stackoverflow.com/questions/3614467/pure-javascript-jquery-html-captcha) – 2012-03-14 11:32:05
如果有人关闭JavaScript,该怎么办? – 2012-03-14 11:32:19
Felix提到如果javascript被关闭,你会怎么做?欢迎来到机器人:D – 2012-03-14 11:33:10