2013-11-04 52 views
0

$("#classList").submit();以下的行被击中时,表单不提交,JavaScript继续。我错过了什么?我在页面上使用jQuery Mobile的(这就是为什么有窗体上的data-ajax="false"属性,以防止表单提交阿贾克斯。JQuery - 为什么不提交?

<script> 
    $(document).ready(function() { 
     $("#filter").on("click", function() { 
      if ($("#filter").val() == 'DONE') { 
       $("#classList").submit(); 
      } 
      $('#filterpanel').toggle(); 
      $("#filter").val(function (i, text) { return text == 'FILTER' ? 'DONE' : 'FILTER';}); 
     }); 
    }); 
</script> 
<form id="classList" runat="server" data-ajax="false"> 
    <div class="search_field2"> 
     <input id="address" type="text" name="address" class="input12" runat="server" clientidmode="Static" data-role="none" /> 
     <span> 
      <input name="submit" type="submit" value="" class="retina-sprite" data-role="none" /></span> 
    </div> 
    <div class="filter_box"> 
     <input id="filter" name="filter" type="button" value="FILTER" class="filter" data-role="none" /> 
    </div> 
... 
</form> 
+1

哪里形式方法和行动 – Terry

+0

这是一个ASP.net表单。如果您指定一个操作属性,它将被忽略(该页面将始终回发给自己)。如果您省略方法属性,则默认情况下它将设置为method =“post”。虽然你的问题让我想知道ASP.NET是否为表单分配了一个不同的ID,但我会查找这个表单,但我会研究 –

+0

Nope,因为预期表单ID将保留为指定的值 –

回答

2

那是因为你有名字submit一个input元素,它覆盖形式提交方法更改提交按钮的名字从提交到别的东西,它应该工作

<form id="classList" runat="server" data-ajax="false"> 
    <div class="search_field2"> 
     <input id="address" type="text" name="address" class="input12" runat="server" clientidmode="Static" data-role="none" /> 
     <span> 
      <input name="submits" type="submit" value="" class="retina-sprite" data-role="none" /></span> 
    </div> 
    <div class="filter_box"> 
     <input id="filter" name="filter" type="button" value="FILTER" class="filter" data-role="none" /> 
    </div> 
... 
</form> 

演示:?ProblemSolution

+0

Brilliant ,这是答案,谢谢!不敢相信我从来没有遇到过这个。会在那里好几个小时。 –