javascript - 如何在用 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>
解决方案
这就是解决方案。通过在 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();
});