2017-04-26 158 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