我需要用户通过单击一个按钮发送两个表单,所以我基本上尝试将两个按钮合并为第三个按钮,以便传递数据,但不知道我在这里做错了什么。
我一直想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,所以我不确定我是否应该实现它。谢谢你的帮助!
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调用将其发送到服务器。