2011-10-19 150 views
1

我在搜索表單上有下面的內容,但Ajax部分似乎仍然刷新整個頁面。我的搜索結果回來就好了,但我不希望每次刷新頁面。使用Ajax,但頁面仍然刷新

showLoader()刷新前出現,但刷新後顯示結果。

我只是有success指向錯誤的DIVs?或者提交發生在錯誤的時間?我迷路了

$('.em-events-search-form').submit(function(){ 
     showLoader() 
     if(this.search.value=='<?php echo $s_default; ?>'){ 
      this.search.value = ''; 
     }   
     if($('#em-wrapper .em-events-list').length == 1){ 
      $(this).ajaxSubmit({ 
       url : EM.ajaxurl, 
       data : { 
        _wpnonce : '<?php echo wp_create_nonce('search_states'); ?>', 
        return_html : true 
       }, 
       success : function(responseText) { 
        $('#em-wrapper .em-events-list').replaceWith(responseText); 
       } 
      }); 
     } 
    }); 

回答

2

您需要防止表單的默認操作從執行:

$('.em-events-search-form').submit(function(e){ 
    showLoader() 
    if(this.search.value=='<?php echo $s_default; ?>'){ 
     this.search.value = ''; 
    }   
    if($('#em-wrapper .em-events-list').length == 1){ 
     $(this).ajaxSubmit({ 
      url : EM.ajaxurl, 
      data : { 
       _wpnonce : '<?php echo wp_create_nonce('search_states'); ?>', 
       return_html : true 
      }, 
      success : function(responseText) { 
       $('#em-wrapper .em-events-list').replaceWith(responseText); 
      } 
     }); 
     e.preventDefault(); 
    } 
}); 

兩個細微變化的e(事件)的說法,現在傳遞給函數,一旦你設置了AJAX調用,就會阻止默認動作的執行。

+0

仍然得到刷新,甚至路過'e'時。 DIV有可能不正確嗎? – RonnieT

+0

e的傳遞並不是解決問題的部分,它是「e.preventDefault();」。 – SoWeLie

+0

e.preventDefault();不會因爲某種原因而無法刷新頁面 – RonnieT

1

我可以建議,而不是使用提交,使用按鈕上的點擊事件處理程序?

另外,e.cancel();可能會訣竅,但上述說法是愚蠢的。

0

嘗試

$("..em-events-search-form").live('click', function() { 
    showLoader() 
if(this.search.value=='<?php echo $s_default; ?>'){ 
    this.search.value = ''; 
}   
if($('#em-wrapper .em-events-list').length == 1){ 

    $.ajax({ 
     type: "POST" 
     url: EM.ajaxurl, 
     data: { 
      _wpnonce : '<?php echo wp_create_nonce('search_states'); ?>', 
      return_html : true 
     }, 
     dataType: 'json', 
     success: function (response){ 
     $('#em-wrapper .em-events-list').replaceWith(response._wpnonce); 
     } 


    }) 
    } 
}); 
+0

這也沒有糾正它。我認爲我有一個更深層次的問題正在進行。將不得不進行更多的調查。 – RonnieT