jquery
  • ajax
  • 2011-08-02 63 views 0 likes 
    0

    我是超級noob當談到javascipt,如何點擊()不工作?此代碼將表單數據提交給php腳本並將回覆加載到div中。你可以看到這裏的行動:http://shorelinerenovations.comjQuery:處理程序沒有定義?

    jQuery(document).ready(function(){ 
        var ajax_load = "<img class='loading' src='http://shorelinerenovations.com/wp-content/themes/Narm/images/load.gif' alt='loading...' />"; 
        var loadUrl = "http://shorelinerenovations.com/wp-content/themes/Narm/optin.php"; 
        jQuery('form#optin-form input#frm_submit').click(function(){ 
         jQuery("#submit-result").html(ajax_load); 
         jQuery.post(
          loadUrl, 
          jQuery("#optin-form").serialize(), 
          function(responseText){ 
           jQuery("#submit-result").html(responseText); 
          }, 
          "html" 
         ); 
        }); 
    }); 
    
    +0

    什麼不正確?你能看到Firebug中的任何錯誤嗎?你還檢查是否定義了jQuery('form#optin-form input#frm_submit')嗎? –

    +0

    您可能只想使用.submit()而不是單擊表單。 – Matt

    +0

    @Laurent:那麼應該運行click()函數中的代碼,即ajax。相反,它會重新加載頁面,就像沒有Ajax一樣。 – jilseego

    回答

    3

    你必須防止默認操作,這是提交表單:

    jQuery('#optin-form').submit(function(event){ 
        event.preventDefault(); 
        // other stuff 
    }); 
    

    只是因爲你做一個Ajax請求並不意味着瀏覽器不會以「正常」的方式提交表單。

    更好地將事件處理程序分配給表單的submit事件。用戶可以在不點擊按鈕的情況下提交表單。

    +0

    謝謝,這就是我想解釋的評論+1 – Matt

    +0

    這不工作,不幸的是。 : - \它仍然忽略事件並以正常方式提交表單。即使嘗試刪除ajax代碼並插入警報(),但不會有任何警報。 *困惑* – jilseego

    +0

    @jilseego:這意味着您的代碼必須在其他地方打破,或者表單元素的ID不正確。 –

    1

    Jilseego,當Firebug顯示錯誤時,Firebug圖標旁應該有一個紅色十字。點擊它,這應該帶你到你的代碼中的錯誤的確切位置。

    頁面可能正在重新加載,因爲如果存在JavaScript錯誤,腳本根本不會被瀏覽器執行。

    相關問題