2013-09-01 21 views
0

這裏是我的窗體的標記形式連載問題

   <form name="contactForm" id="contactForm" role="form"> 
        <div style="width: 190px"> 
         <div class="form-group"> 
          <input type="text" placeholder="fullname" name="fullname" id="formFullname" class="form-control"> 
         </div> 
         <div class="form-group"> 
          <input type="email" placeholder="email" name="email" id="fromEmail" class="form-control"> 
         </div> 
         <div class="form-group"> 
          <input type="text" placeholder="company" name="company" id="fromCompany" class="form-control"> 
         </div> 
        </div> 
        <div class="clear"></div> 
        <div class="form-group"> 
         <textarea placeholder="message" name="message" id="formMessage" rows="3" class="form-control"></textarea> 
        </div> 

        <button class="btn btn-success" type="submit" name="submit" id="formSubmit">send</button> 
       </form> 

使用jQuery 1.10.2

這裏是JS

var form = $('#contactForm'); 

form.submit(function() { 
    console.log("form ", $(this).serialize()); 
    $.ajax({ 
     type: "POST", 
     url: url + "ajax/sendmail", 
     data: $(this).serialize(), 
     success: function (response) { 
      console.log(response); 
     } 
    }); 
    return false; 
}); 

我知道功能火災,用警惕的測試。但console.log不會返回任何東西,並且在ajax調用期間,我在POST中看不到任何東西(使用螢火蟲的XHR觀看)。

BTW:角色=「形式」,是因爲我使用Twitter的引導框架

我在做什麼錯?

UPDATE

數據:$(形式).serialize()也沒

+0

只是爲了確定,返回什麼'... event.preventDefault(); console.log($(this).serialize()); ...'? – Newben

+0

@Newben空字符串 – heron

回答

1

幫助如果你試試這個:

form.submit(function() { 
    console.log("form ", $(this).serialize()); 
    return false; 
}); 

它工作得很好。所以我覺得這個問題

form.on('submit',function() { 
    event.preventDefault(); 
    console.log("form ", $(this).serialize()); 
    $.ajax({ 
     type: "POST", 
     url: url + "ajax/sendmail", 
     data: $("form").serialize(), 
     success: function (response) { 
      console.log(response); 
     } 
    }); 
    return false; 
}); 

因爲$(this)在您的代碼不參考form而是指jQuery上被稱爲

0

嘗試下面的代碼ajax方法,但首先修改您的形式HTML以便具有「操作」屬性。這段代碼的好處在於,它可以用於任何具有提交按鈕和操作屬性的表單。 (即,它不與任何特定的ID結合)

$(function() { 

    $('input[type="submit"]').click(function(event) { 
     event.preventDefault(); 
     var form = $(this).closest('form'); 
     var url = form.attr('action'); 
     var data = form.serialize(); 
     $.post(url, data) 
      .done(function() { 
       alert('Yay! your form was submitted'); 
      }) 
      .fail(function() { 
       alert('Uh oh, something went wrong. Please try again'); 
      }); 
    }); 

乾杯。