友人に教えてもらったスパム対策の方法。お問い合わせフォームのチェックボックスにチェックを入れないと送信ボタンを表示しないスクリプトのメモ。
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <br /><script type="text/javascript"><br />$(function(){<br /> $('#btn').hide();<br /> $("#switch").click(function(){<br /> $("#btn").slideToggle(this.checked);<br /> $("form").attr("action","/apps/mailform/send.cgi");<br /> });<br />});<br /></script><br /><form action="#" method="post"><br /> <label><br /> <input id="switch" type="checkbox" name="ボタン表示(必須)" value="表示" /><br /> ボタンを表示</label><br /> <input id="btn" type="submit" value="送信" /><br /></form>
↓実際にチェック入れたら送信ボタンが右に表示されます。
$(function(){ $(’#btn’).hide(); $("#switch").click(function(){ $("#btn").slideToggle(this.checked); $(“form”).attr(“action”,“lib/send.cgi”); }); });
ボタンを表示
チェックボックスにチェックが入っていないとaction="#"となっていて、チェックを入れるとaction属性がlib/send.cgiに変わるようになっています。自動でフォーム送信するようなボットを使ったスパムに対して有効かもしれません。