Javascript jqueryajax表单提交与twitter引导模式

Javascript jqueryajax表单提交与twitter引导模式,javascript,php,jquery,ajax,twitter-bootstrap,Javascript,Php,Jquery,Ajax,Twitter Bootstrap,我正在开发一个聊天室,我希望客户点击按钮“单击此处并开始聊天”,打开表单,然后提交表单“开始聊天” 但是我不能使用ajax提交,我检查了控制台日志,没有什么奇怪的 <!DOCTYPE html> <html> <head> <title>Start Chat</title> <meta charset="utf-8"> <link type="text/css" rel="stylesheet"

我正在开发一个聊天室,我希望客户点击按钮“单击此处并开始聊天”,打开表单,然后提交表单“开始聊天”

但是我不能使用ajax提交,我检查了控制台日志,没有什么奇怪的

<!DOCTYPE html>
<html>
<head>
    <title>Start Chat</title>
    <meta charset="utf-8">
    <link type="text/css" rel="stylesheet" media="all" href="css/chat.css" />
    <link type="text/css" rel="stylesheet" media="all" href="css/bootstrap.css" />
</head>
<body>
    <center> 

            <!-- Button trigger modal -->
    <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
      Click here and start ur chat
    </button>

        <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Write ur info below</h4>
              </div>
              <div class="modal-body">
                <form action="" method="POST" id="form">                    
                    <table width="100%">
                        <tr>                        
                            <td>Name: </td> <td><input type="text" name="name" placeholder="Name"></td>
                        </tr>
                        <th>&nbsp;</th>
                        <tr>                        
                            <td>Mail: </td> <td><input type="text" name="mail" placeholder="Mail"></td>
                        </tr>
                    </table>
                </form>
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" class="btn btn-primary" id="start">Start Chat</button>
              </div>
            </div>
          </div>
        </div>
            <!-- javascript:chatWith('3','Ronaldo') -->

    </center>

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.js"></script>
    <script type="text/javascript" src="js/chat.js"></script>
    <script type="text/javascript">

        $(document).ready(function(){   

            $("#start").click(function(){
                $("#form").submit(function(e){

                    $.ajax({

                        url: "dateRecd.php",
                        type: "POST",
                        data: $(this).serialize(),

                        success: function(data){
                            alert(data);
                        //  chatWith('9','name');
                        }


                    });

                });
            });     
        });
    </script>
</body>
</html>

开始聊天
点击这里开始聊天
&时代;
把你的信息写在下面
姓名:
邮寄:
关
开始聊天
$(文档).ready(函数(){
$(“#开始”)。单击(函数(){
$(“#表格”)。提交(功能(e){
$.ajax({
url:“dateRecd.php”,
类型:“POST”,
数据:$(this).serialize(),
成功:功能(数据){
警报(数据);
//聊天室('9','name');
}
});
});
});     
});
只需删除#开始单击

$(文档).ready(函数(){
//$(“#开始”)。单击(函数(){//将完成双重验证
$(“#表格”)。提交(功能(e){
$.ajax({
url:“dateRecd.php”,
类型:“POST”,
数据:$(this).serialize(),
成功:功能(数据){
警报(数据);
//聊天室('9','name');
}
});
});
//});     
});
只需删除#开始单击

$(文档).ready(函数(){
//$(“#开始”)。单击(函数(){//将完成双重验证
$(“#表格”)。提交(功能(e){
$.ajax({
url:“dateRecd.php”,
类型:“POST”,
数据:$(this).serialize(),
成功:功能(数据){
警报(数据);
//聊天室('9','name');
}
});
});
//});     
});

请尝试“单击”操作,而不是在表单中提交


请尝试“单击”操作,而不是在表单中提交


事实上,当您单击“开始”按钮时会发生什么?将单击处理程序添加到“开始”按钮时,如下所示:

$("#form").submit(function(e){
//...
}
单击按钮时,可以添加表单的sumbit处理程序。没有更多,没有提交,没有ajax操作

要获得您想要的,有两种简单的方法:

  • 在按钮的单击处理程序中,删除表单提交处理程序, ajax是否提交,如@Thiru所说
  • 删除按钮点击处理程序,使用表单提交处理程序,如@Faytraneozter-propoese
  • 但是第二种方法不起作用。为什么?

    首先,您的页面中有4个按钮,您的页面如何知道单击哪个按钮应该触发提交操作?你应该加上
    type=“submit”
    单击此按钮,以便您的页面知道当您单击此按钮时,您的意思是提交表单


    其次,当您启动表单的提交操作时,它是通过HTML提交的,而不是ajax。您应该添加行
    e.preventDefault
    ,以防止通过HTML提交。这是一个很好地解释了
    e.preventDefault

    事实上,当你点击“开始”按钮时会发生什么?将单击处理程序添加到“开始”按钮时,如下所示:

    $("#form").submit(function(e){
    //...
    }
    
    单击按钮时,可以添加表单的sumbit处理程序。没有更多,没有提交,没有ajax操作

    要获得您想要的,有两种简单的方法:

  • 在按钮的单击处理程序中,删除表单提交处理程序, ajax是否提交,如@Thiru所说
  • 删除按钮点击处理程序,使用表单提交处理程序,如@Faytraneozter-propoese
  • 但是第二种方法不起作用。为什么?

    首先,您的页面中有4个按钮,您的页面如何知道单击哪个按钮应该触发提交操作?你应该加上
    type=“submit”
    单击此按钮,以便您的页面知道当您单击此按钮时,您的意思是提交表单


    其次,当您启动表单的提交操作时,它是通过HTML提交的,而不是ajax。您应该添加行
    e.preventDefault
    ,以防止通过HTML提交。下面是一个答案,它很好地解释了
    e.preventDefault

    如果您使用Ajax表单,您当然需要preventDefault。现在您只需分配提交处理程序。您的模式是这样的吗:开始(单击)=>showmodel=>clicksubmitchat?我不确定preventDefault,我可以删除它吗?如果您使用Ajax表单,您肯定需要preventDefault。现在您只需分配提交处理程序。您的模式是这样的吗:开始(单击)=>showmodel=>clicksubmitchat?我不确定是否为默认值,是否可以将其删除?将此开始聊天更改为此开始聊天并将其放入标记中是否应将async:false?将此开始聊天更改为此开始聊天并将其放入标记中是否应将async:false?
    $("#form").submit(function(e){
    //...
    }