首页 > 解决方案 > 如何在用 javascript 发送表单之前将字段和值添加到表单中?

问题描述

我打算反对对我的联系表单进行垃圾邮件攻击,使用 javascript 在表单作为 POST 发送之前将字段 (is_legit=1) 附加到表单。

该脚本的工作原理是发送表单但没有添加字段。我做错了什么?

这是js脚本:

<script>
$("#send").click(function() {
    var form = $("contact-form");
    var hiddenVar = document.createElement("input");
    hiddenVar.name="is_legit";
    hiddenVar.id = "is_legit";
    hiddenVar.type="hidden";
    hiddenVar.value = 1;
    $(form).appendChild(hiddenVar);
    $(form).submit();
});

和带有发送按钮的表单:

<form id="contact-form" action="/contact" method="post">
<input...>
<button 
    id="send"
    class="button is-link is-primary" 
    name="send">
    send
</button>
</form>             

标签: javascriptpostappendchild

解决方案


这就是解决方案。通过在 POST 数据中添加一个值为 1 的“不可见”字段,它可以 100% 使用表单联系人表单中的发送按钮......我希望这将阻止俄罗斯比特币的黑客行为!

$("#send").click(function() {
    var $input = $('<input>').attr({type:'hidden',id:'is_legit',name:'is_legit',value:'1'}).appendTo('#contact-form');
    $('#contact-form').submit();
});

推荐阅读