我有一個動態的MVC4,jQuery Mobile應用程序,大部分工作相當好。我有一個自動發佈下拉列表,通過下面的代碼從數據庫中選擇一個列表。在加載或清除DOM時刷新瀏覽器
<script type="text/javascript">
$(function() {
$("#TownID").live('change', function() {
//$("#TownID").change(function() {
var actionUrl = $('#TheForm1').attr('action') + '/' + $('#TownID').val();
$('#TheForm1').attr('action', actionUrl);
$('#TheForm1').submit();
});
});
</script>
<p>
@using (Html.BeginForm("SearchTown", "Home", FormMethod.Post, new { id = "TheForm1" }))
{
@Html.DropDownList("TownID", (SelectList)ViewBag.TownId, "Select a Town")
}
</p>
問題是它只有在第一次執行搜索時才能正常工作,除非我單擊刷新。我不認爲這與MVC有什麼關係,我認爲問題在於AJAX和jQuery Mobile。
編輯:
我第一次搜索www.mysite.com/Home/Search/2產生的結果和炒菜鍋不錯,但第二次的東西似乎在DOM留下???它看起來爲:
www.mysite.com/Home/Search/2/2 also
我得到了我的日誌和「加載頁面時出錯」 404錯誤,但它仍然認定結果,並正確顯示頁面!
然後用第三搜索我得到了我的日誌中的錯誤404的和「加載頁面時出錯」,但它已經成長,現在看起來爲:
www.mysite.com/Home/Search/2/2
www.mysite.com/Home/Search/2/2/2 also
這則繼續每一個搜索,直到一些後成長每個測試看似隨機的點,它似乎放棄了,我得到錯誤505
附加編輯:
代碼工作完美,如果我把jQuery Mobile的出了問題
任何人都可以告訴我可能會發生什麼嗎?
您的代碼完全按照您的要求進行操作。在每次更改下拉列表時,它都將追加另一個ID給你的動作。我不知道你爲什麼試圖以這種方式進行表單提交。 – 2012-04-23 06:59:01
此外,您應該使用'綁定'而不是'活' - 否則感謝jQuery手機,如果您離開頁面然後回來,您可能會收到多個提交。 – 2012-04-23 07:02:32
謝謝Daniel,這是我知道的唯一途徑。我一直在爲此工作了大約6個月,並耗盡了網絡,試圖尋找更好的方法。如果你知道一個更好的方式來自動提交表單,請分享? – Bojangles 2012-04-23 09:47:30