2013-11-04 83 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 ,這是答案,謝謝!不敢相信我從來沒有遇到過這個。會在那裏好幾個小時。 –