2017-04-26 150 views
0

好的,所以我試圖在用戶導航到我的頁面然後提交表單時初始隱藏表格,然後使用Ajax處理它並顯示結果表格。.show()在ajax調用後不工作

但是,當我運行代碼時,它刷新頁面並默認顯示無設置。

這裏是我的CSS和JavaScript:

JS:

<script> 

     var frm = $('#myform'); 
     frm.submit(function() { 
      $('#loader').show(); 
      $('#results-table').hide(); 
      e.preventDefault(); 
      $.ajax({ 
       type: frm.attr('method'), 
       url: frm.attr('action'), 
       data: frm.serialize(), 
       async: true, 
       success: function (data) { 
        $('#loader').hide(); 
        $('#results-table').show(); 
        $("#results-table").html(data); 
       }, 

      }); 
      return false; 

     }); 

    </script> 

CSS:

 #results-table { 
     display: none; 

     } 

HTML:

<table class="table table-bordered table-striped table-hover table-responsive" id="results-table" > 

<form action="{% url 'results-view' %}" method="POST" class="autocomplete-me ui-widget" id="myform" > 
+0

您沒有將'e'定義爲參數。嘗試:'frm.submit(function(e){' – Twisty

回答

0

您需要防止的形式提交,通過將事件傳遞給fu並防止它:

var frm = $('#myform'); 
     frm.submit(function (e) { 
      e.preventDefault(); 
      $('#loader').show(); 
      $('#results-table').hide(); 
      e.preventDefault(); 
      $.ajax({ 
       type: frm.attr('method'), 
       url: frm.attr('action'), 
       data: frm.serialize(), 
       async: true, 
       success: function (data) { 
        $('#loader').hide(); 
        $('#results-table').show(); 
        $("#results-table").html(data); 
       }, 

      }); 
      return false; 
     }); 

return false不會伎倆。

+0

好吧,它可以顯示/隱藏顯示,但現在只是將整個頁面加載到結果表部分而不是數據表中 – jdv12

+0

因此,更改ajax電話正在返回 – TricksfortheWeb

+0

我不確定我是否理解你的意思,你可以進一步解釋嗎?數據不會來自表格嗎? – jdv12