如何一键发送两个表单(脚本忍者ID)

时间:2017-12-18 作者:user133428

我需要用户通过单击一个按钮发送两个表单,所以我基本上尝试将两个按钮合并为第三个按钮,以便传递数据,但不知道我在这里做错了什么。

我一直想this solution 工作,但我得到控制台错误

“未捕获的typeerror:无法在SubmitForms处读取null的属性“submit”

其中一个表单是由ninjaforms生成的,另一个是由另一个插件生成的。。。我不确定我是否能以正确的方式寻址/调用ninjaform id或其名称。这两者中的任何一个在哪里可以找到?我尝试了许多不同的变体,都得到了相同的结果。

因此,我的(第三个)按钮如下所示:

...
function button() {
echo \'<input type="button" name=button class=button value="click me" onclick="submitForms()" />\';
}
这就是js的外观(在标题中):

    <script>
submitForms = function(){
    document.getElementById("ninja_form_id_2").submit();
    document.getElementById("id_form_2").submit();
}
</script>
我以前从未使用过javascript,所以我不确定我是否应该实现它。谢谢你的帮助!

1 个回复
SO网友:Thomas

partially stole this answer 来自SO

$("#idForm").submit(function(e) {

var url = "path/to/your/script.php"; // the script where you handle the form input.

$.ajax({
       type: "POST",
       url: url,
       data: {
                 form1: $("#idForm").serialize(),
                 form2: $("#idForm2").serialize()
       },  
                 // serializes the form\'s elements.
       success: function(data)
       {
           alert(data); // show response from the php script.
       }
     });

e.preventDefault(); // avoid to execute the actual submit of the form.
});
因此,基本上可以防止表单的正常提交,将其内容序列化为json,并通过ajax调用将其发送到服务器。

结束