2011-03-12 38 views
0

我在單個頁面上有兩種表單。實際上他們是分離的頁面,但頁面內容被加載到多個div中,通過頁面實現滑動效果。無法使用jQuery提交第二個表單ajax

在一個div中,我有一個帶有兩個文本輸入的小表單。我可以毫無問題地提交它。在另一個div我有一個聯繫表單。它使用相同的腳本來處理表單。唯一改變的是.submit()應該綁定到的地方。

由於某種原因,我無法獲得第二種形式的工作。頁面中的表單有沒有限制(我知道,這聽起來很愚蠢,但我在這裏無能爲力......)?

的形式是這樣的:

<form id='form-1'> 
.. 
</form> 

<form id='form-2'> 
.. 
</form> 

jQuery的,內$(document).ready(function(){});

$("#gratis-proefles").submit(function(){ 
     var str = $(this).serialize(); 

     $.ajax({ 
      type: "POST", 
      url: "ajax.php?type=proefles", 
      data: str, 
      success: function(result){ 
       $("#ResultAanvraagProefles").ajaxComplete(function(event, request, settings){  
        if(result == true) 
        { 
         $(this).html('<span style="color:#76c5f0;"><strong>Bedankt voor je aanvraag! We nemen zo snel mogelijk contact met je op om de gratis proefles in te plannen!</strong></span>'); 
         $(":input", "#gratis-proefles") 
          .not(":button, :submit, :reset, :hidden") 
          .val("");      
        } 
        else 
        { 
         $(this).html('<span style="color:#FF0000;"><strong>Om een gratis proefles aan te kunnen vragen is het verplicht om zowel je naam als je telefoonnummer op te geven.</strong></span>'); 
        }       
       }); 
      } 
     }); 

     return false; 
    }); 

    $("#contact-formulier").submit(function(){ 
     var str = $(this).serialize(); 

     $.ajax({ 
      type: "POST", 
      url: "ajax.php?type=contact", 
      data: str, 
      success: function(result){ 
       $("#ResultContact").ajaxComplete(function(event, request, settings){  
        if(result == true) 
        { 
         $(this).html('<span style="color:#76c5f0;"><strong>Bedankt voor je bericht! We nemen zo snel mogelijk contact met je op!</strong></span>'); 
         $(":input", "#contact-formulier") 
          .not(":button, :submit, :reset, :hidden") 
          .val(""); 
        } 
        else 
        { 
         $(this).html('<span style="color:#FF0000;"><strong>Alle velden zijn verplicht in te vullen.</strong></span>'); 
        }       
       }); 
      } 
     }); 

     return false; 
    }); 

一個活生生的例子可以在http:vfw.ontdek5.nl/index.php找到。這是在荷蘭,但形式是在'免費Proefles'和'聯繫'的頁面上。

+1

第二種形式提交回調做提醒並返回 – jimy 2011-03-12 12:03:41

+0

那麼,它從來沒有出現在jQuery函數中。 .live()似乎是解決方案。感謝您的嘗試(我看到您的郵件測試郵件通過;))+1的評論。 – Ben 2011-03-12 12:11:20

回答

1

試試jquery live動態加載的表單功能!

jQuery.live(); 
+0

感謝您的回答,我已經嘗試過了,但並不是解決方案更加迫切...... – Ben 2011-03-12 12:05:19

+0

畢竟這是解決方案;)我忘記了將formID重命名爲綁定名稱。謝謝大家! +1並接受 – Ben 2011-03-12 12:10:06

2

我可以在你的形式有「接觸formuliers」的ID,但在你的代碼是「接觸formulier」示例站點的HTML看到。這個問題可能是這麼簡單......

+0

感謝您的回答:)我替換了名稱,因爲我還使用了與免費Proefles頁面完全相同的表單進行測試。與.live();相結合。這是解決方案。我忘了將表格重新命名爲:/。 – Ben 2011-03-12 12:08:12

2

你必須在第二個ID的錯字

contact-formulier應該contact-formuliers

+0

感謝您的回答:)我替換了名稱,因爲我也使用了與免費Proefles頁面完全相同的表單進行測試。與.live();相結合。這是解決方案。我忘了將表格重新命名爲:/。 – Ben 2011-03-12 12:09:05

0

我安靜不確保您的第二種形式是如何被拉到頁面,但這聽起來像一個事件沒有綁定,因爲它被加載後頁面被添加到頁面。看着你使用jQuery 1.5嘗試使用.delegate(http://api.jquery.com/delegate/)但在更​​高的水平,並在你的情況下嘗試像$('#slider')。委託('輸入:提交」, '點擊',功能(事件){});然後,您可以選擇單擊哪個提交按鈕,然後找到該表單並提交該表單。