.serialize() 没有捕捉到联系表的价值

.serialize() catch no value of contact form

我已经创建了一个 html 联系表和一个 php 发件人邮件文件。 之后,我为 return 确认消息添加了 jquery 代码。但现在代码不起作用,因为序列化函数没有价值。

这是我的 html 代码:

<div id="form" >

    <div class="form-group row">
        <label for="name" class="col-sm-4 col-md-4 control-label">Nome</label>
        <div class="col-sm-8 col-md-6 col-lg-6">
            <input type="text" class="form-control" id="name"  name="name" placeholder="Nome e Cognome"> 
        </div>
    </div>

    <div class="form-group row">
        <label for="email" class="col-sm-4 col-md-4 control-label">E-Mail</label>
        <div class="col-sm-8 col-md-6 col-lg-6">
            <input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com">
        </div>
    </div>

    <div class="form-group row">
        <label for="message" class="col-sm-4 col-md-4 control-label">Messaggio</label>
        <div class="col-sm-8 col-md-6 col-lg-6">
            <textarea class="form-control" rows="4" id="message" name="message" placeholder="Messaggio"></textarea>
        </div>
    </div>

    <div class="form-group row">
        <div class="col-sm-8 col-sm-offset-4">
            <button id="submit">
        </div>
    </div>

</div>

在同一个文件中,jquery:

$(document).ready(function(){
      $('#submit').click(function() {
          var dati = $("#form").serialize();
          alert(dati);
         $.ajax({
               type:"post",
               url:"contact_form.php",
             //  data:  $("#form").serialize(),
                data: dati,
dataType: "html",
               success: function(response){
                   $(".returnmessage").html(response);
               }
       });
      });
   });

警报(数据);始终 return 一条空消息

哪里出错了?谢谢

serialize 方法必须在表单元素上调用 - 在您的情况下它是 div。 根据jQuery doc:

Only form elements are examined for inputs they contain

最简单的解决方案是更改包装器,而不是 <div id="form" > 使用 <form id="form" >

您需要使用 Form 标签,因为 serialize() 方法仅适用于 html Form

像这样编写代码

<form id="form" >

                <div class="form-group row">
                    <label for="name" class="col-sm-4 col-md-4 control-label">Nome</label>
                    <div class="col-sm-8 col-md-6 col-lg-6">
                        <input type="text" class="form-control" id="name"  name="name" placeholder="Nome e Cognome"> 
                    </div>
                </div>

                <div class="form-group row">
                    <label for="email" class="col-sm-4 col-md-4 control-label">E-Mail</label>
                    <div class="col-sm-8 col-md-6 col-lg-6">
                        <input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com">
                    </div>
                </div>

                <div class="form-group row">
                    <label for="message" class="col-sm-4 col-md-4 control-label">Messaggio</label>
                    <div class="col-sm-8 col-md-6 col-lg-6">
                        <textarea class="form-control" rows="4" id="message" name="message" placeholder="Messaggio"></textarea>
                    </div>
                </div>

                <div class="form-group row">
                    <div class="col-sm-8 col-sm-offset-4">
                        <button id="submit">
                    </div>
                </div>

            </form>