在用javascript发送post表单之前,如何向其添加字段和值?

在用javascript发送post表单之前,如何向其添加字段和值?,javascript,post,appendchild,Javascript,Post,Appendchild,我反对对我的联系人表单进行垃圾邮件攻击的目的是,在表单作为POST发送之前,使用javascript在表单中附加一个字段(is_legit=1) 脚本的工作原理是表单已发送,但没有添加字段。我做错了什么 这是js脚本: <script> $("#send").click(function() { var form = $("contact-form"); var hiddenVar = document.createElemen

我反对对我的联系人表单进行垃圾邮件攻击的目的是,在表单作为POST发送之前,使用javascript在表单中附加一个字段(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();
});

$(“#发送”)。单击(函数(){
变量形式=$(“联系形式”);
var hiddenVar=document.createElement(“输入”);
hiddenVar.name=“合法”;
hiddenVar.id=“合法”;
hiddenVar.type=“隐藏”;
hiddenVar.value=1;
$(表格).appendChild(hiddenVar);
$(表单).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();
});
$(“#发送”)。单击(函数(){
var$input=$('').attr({type:'hidden',id:'is_legit',name:'is_legit',value:'1'}).appendTo('#contact form');
$(“#联系方式”).submit();
});

该脚本无法正常工作,
$(“联系人表单”)
不会在此处选择任何内容。@CBroe没有js错误,至少表单已正确发送$(表单)。submit();那么,您能进一步帮助吗?“至少表单是用$(form.submit())正确发送的”-不,不是。它是基于您的按钮是提交按钮而发送的。“没有js错误”-您可能没有看到它们,因为页面会重新加载(因为表单会提交,这是正常的方式)-因此,请设置浏览器控制台以在页面更改之后保留错误消息。您应该在这里看到的第一个错误是
未捕获的TypeError:$(…).appendChild不是函数
–appendChild是本机DOM方法,不能在jQuery对象上调用它。如果您通过使用
$(form)[0].appendChild
来解决这个问题(
[0]
来获取对该jQuery集合中第一个DOM元素的引用),那么您将得到
未捕获的TypeError:无法读取未定义的
的属性“appendChild”-正如我所说的,
$(“联系人表单”)
没有选择任何元素作为开头。@CBRoe如何设置Mac Firefox控制台以在页面更改之外保留错误消息?