这是(.click)...
上的if语句示例$('#submit').click(function () {
***********************************
var email = $('input[name=email]');
***********************************
if (email.val()=='') {
email.addClass('hightlight');
return false;
} else email.removeClass('hightlight');
...
$('#submit').click(function () {
...
var email = $('input[name=email]');
这是一个包含其他数据的PHP Ajax联系表单。我最终从例如.ru(俄罗斯)那里收到了很多垃圾邮件,所以在if语句中错误排除最常见的垃圾邮件是好的,或者最好只使用验证码。如果是这样的话,对一个简单的参考文献的任何好的参考都是明显的,并且在这种情表格是在 http://www.shaneofalltrades.com/index.html#contact 对任何想法持开放态度。
答案 0 :(得分:2)
最好的事情是服务器端验证(某种验证码)。不要仅依赖客户端验证。
答案 1 :(得分:1)
如果您收到大量垃圾邮件,最好的办法就是添加验证码(reCAPTCHA)。
如果评论中包含网址或可疑内容,您可以添加一些代码以仅添加验证码。
答案 2 :(得分:1)
我认为最好的方法是使用像recaptcha这样的验证码服务。或者只是实现一个必须在帖子之前回答的简单随机计算。像“什么是1 + 3?”这样的东西
答案 3 :(得分:1)
...或者最好只使用验证码。如果是这样的话,任何对一个简单的参考文献都有明显的参考,并且明智地用于这种情况......
reCAPTCHA非常易于集成,广泛使用且得到良好支持。
答案 4 :(得分:1)
我会在表单上添加一个mousemove触发器,用于设置隐藏变量以接受表单
<input type='hidden' name='isValid' value='no' />
<script type='text/javascript'>
$('form').mousemove(function(){
$('input[name=isValid]').val('yes');
})
</script>
并在服务器端检查。
答案 5 :(得分:1)
我对这两个选项中的任何一个都有很好的经验:
使用在页面上生成的基于会话的令牌,然后使用表单提交,然后评估服务器端。这需要“bot”使用cookie,并使用两个请求来发布您的表单。大多数简单机器人都不这样做。
使用onsubmit事件挂钩设置提交时的实际表单操作。这样,脚本无法轻松读出要发布的目标网址,而无需处理javascript。例如:
<form onsubmit="this.action = ['formpost','php'].join('.')">
通过将事件附加到单独的js文件中,您可以对其进行更多的混淆,但是对于禁用javascript,删除或者页面上的javascript中断的人来说,不会有后退。
附加:有一项名为keypic.com的新服务值得研究。 http://www.keypic.com/
它的工作方式是它依赖于客户端实际从第三方服务器(大多数机器人不会)获取图像,然后您可以在提交时重新验证。如果您愿意,这个系统很容易复制。