ajax 提交 form表单 ,后台执行两次的问题

充满荆棘的路 2015-11-02 01:05:57

//前台代码
//#contact-form 表单ID
$(function () {
$("#contact-form").submit(function () {
$.ajax({
type: "post",
url: "?",
dataType: "text",
async: false,
data: $('#contact-form').serialize(),
success: function (data) {
debugger;
alert(data);
}
});
});
});


//后台代码
string name = Request.Form["name"];
string textEmail = Request.Form["email"];
string pone = Request.Form["pone"];
string messages = Request.Form["message"];
string Msg = "";
BusinessConsulted bcb = new BusinessConsulted
{
MessageName = name,
MessageEmail = textEmail,
ContactInformation = pone,
Messages = messages,
MessageTime = DateTime.Now.ToString(),
State = 0,
ClassifyOne = 0,
ClassifyTwo = 0
};
BusinessConsultedBLL bb = new BusinessConsultedBLL();
bb.InsertBusinessConsulted(bcb, ref Msg);
Response.Write(Msg);
Response.End();


调试的时候,进入后台,如果是ajax异步,就是没行走两次,同步就是走完一遍,在走一遍
前台输出的时候,也是输出两次,先输出ajax回调的参数值,然后又显示了正常表单提交的返回值
太纠结了,
大神帮忙看下问题
...全文
2541 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
six66667 2019-01-08
  • 打赏
  • 举报
回复
$("#contact-form").submit(function () {})这里面ajax完了写个return false;
L_Jessica 2015-11-27
  • 打赏
  • 举报
回复
同楼上,你的ajax代码写错。
jieshao0815 2015-11-03
  • 打赏
  • 举报
回复
你要不就$.ajax提交。 要不就submit提交。 你这是提交两次啊。
Go 旅城通票 2015-11-02
  • 打赏
  • 举报
回复
1#已经给出解决办法,和你说下为什么会出现这种问题 因为有提交了一次表单。你的ajax是同步的,所以提交表单动作被挂起直到ajax完毕后(此时执行请求过一次服务器),表单会提交,这样就会请求第二次服务器,如果你ajax和表单请求同一个页面就会出现执行2次的问题,如插入2条相同的数据什么的
slwsss 2015-11-02
  • 打赏
  • 举报
回复
$("#contact-form").submit(function () { $.ajax({ type: "post", url: "?", dataType: "text", async: false, data: $('#contact-form').serialize(), success: function (data) { debugger; alert(data); } }); return false });

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧