ajax 提交 form表單 ,後臺執行兩次的問題

//前臺代碼
//#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回調的參數值,然後又顯示了正常表單提交的返回值

改正:
$("#contact-form").submit(function () {
                        $.ajax({
                            type: "post",
                            url: "?",
                            dataType: "text",
                            async: false,
                            data: $('#contact-form').serialize(),
                            success: function (data) {
                                debugger;
                                alert(data);
                            }
                        });
return false;
                    });

原因:
因爲有提交了一次表單。你的ajax是同步的,所以提交表單動作被掛起直到ajax完畢後(此時執行請求過一次服務器),表單會提交,這樣就會請求第二次服務器,如果你ajax和表單請求同一個頁面就會出現執行2次的問題,如插入2條相同的數據什麼的

轉載自: http://bbs.csdn.net/topics/391852319 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章