我在一个页面上有两个表单。当我点击父窗体的提交按钮时,调用父窗体提交事件,我在编写逻辑的同时借助提交方法提交第二种窗体(见下面的代码)。问题是当第二个表单提交方法被调用时,它会在提交父表单之前自动重新加载页面。
<script type="text/javascript">
$(document).ready(function () {
$("#aspnetForm").submit(function(event) {
debugger;
var marketoForm = MktoForms2.allForms()[0];
console.log(marketoForm);
marketoForm.addHiddenFields({
//These are the values which will be submitted to Marketo
"Email": $('#MainContentPlaceHolder_C003_ctl00_ctl00_C006_ctl00_ctl00_textBox_write').val(),
"FirstName": $('#MainContentPlaceHolder_C003_ctl00_ctl00_C001_ctl00_ctl00_textBox_write').val(),
"LastName": $('#MainContentPlaceHolder_C003_ctl00_ctl00_C005_ctl00_ctl00_textBox_write').val(),
"Phone": $('#MainContentPlaceHolder_C003_ctl00_ctl00_C012_ctl00_ctl00_textBox_write').val(),
"MarketoSocialGender": $('#MainContentPlaceHolder_C003_ctl00_ctl00_ctl06_C051_ctl00_ctl00_dropDown').val()
});
marketoForm.submit();
return false;
});
});
</script>
Html如下 -
<form method="post" action="./physical-therapy-test-by-rahul" id="aspnetForm">
<form id="mktoForm_15528"></form>
</form>
有人可以帮助我的页面重新加载吗?如何在提交唯一的第一张表格时提交两份表格?
答案 0 :(得分:0)
您不能拥有多个嵌套的表单。提交marketo表单时,它会发布内部表单,并将回发到服务器,除非您正在捕获表单提交。但是,您添加到内部表单的任何内容都可以通过外部表单获得。如果marketoForm.addHiddenFields()
方法添加了附加输入字段,则这些字段也可以在asp.net表单中使用,这意味着内部表单可以只是添加内容的DIV。
由于字段是动态添加的,因此需要通过服务器上的Request.Form("Email")
获取值。
ASP.NET Web窗体有一些ASP.NET MVC消除的限制;我不知道这是否是另一种可能性。或者,如果您可以通过AJAX提交内部表单,然后触发一个帖子到外部FORM,这可能有用(加上内部表单不需要是<FORM>
标签,但是div seledized在$.ajax
电话中)作为另一种选择,但我不知道情况是否可行。