.serialize()没有捕获联系表单的值

时间:2017-03-09 13:30:19

标签: javascript jquery ajax forms javascriptserializer

我创建了一个html联系表单和一个php发件人邮件文件。 之后,我添加了一个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);
               }
       });
      });
   });

警报(DATI);始终返回空消息

哪里出错?感谢的

2 个答案:

答案 0 :(得分:1)

必须在表单元素上调用

serialize方法 - 在您的情况下,它是div。 根据jQuery doc

  

仅检查表单元素是否包含

的输入

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

答案 1 :(得分:1)

您需要使用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>