2011-09-11 56 views
1

我目前有一個帶有'select'輸入的表單。當用戶選擇一個選項時,我希望表單自動提交。jQuery Mobile:如何動態地通過ajax提交表單?

這裏是我當前的代碼:

<form method="get"> 
    <select name="category" data-native-menu="false" onchange="this.form.submit()"> 
     <option value="1">Option 1</option> 
     <option value="2">Option 2</option> 
    </select> 
</form> 

目前,當用戶選擇的選項之一,提交表單。然而,它提交沒有 ajax。

那麼,有沒有一個jQuery Mobile的特定功能,我必須調用以獲取表單通過ajax提交,因爲默認情況下,當他們使用提交按鈕提交表單時呢?


編輯:

這是我找到了解決辦法:

<form action='myPage' method="get" id='myForm'> 
    <select name="category" data-native-menu="false" onchange="$.mobile.changePage('myPage', {type: 'get', data: $('form#myForm').serialize()});"> 
     <option value="1">Option 1</option> 
     <option value="2">Option 2</option> 
    </select> 
</form> 
+0

爲什麼不使用內置FORMDATA? – tjameson

+0

我真的不知道你指的是什麼。你能解釋一下FormData是什麼嗎? –

回答

1

嘗試這樣的事情來獲得FormData對象:

var formData = $('form')[0].getFormData() 

另外,檢查出serialize doc從jQuery的文檔:

$('form').submit(function() { 
    alert($(this).serialize()); 
    return false; 
}); 

返回false可防止表單提交處理程序發射。用數據做一些事情(例如,把它粘在你的ajax處理程序中)而不是alert。

編輯:

的OP說,這個問題是由閱讀本頁面解決:http://jquerymobile.com/demos/1.0b3/docs/api/methods.html

+0

儘管我確實可以對此做些什麼,但我相信你可能誤解了我的帖子。目前我正在使用的框架[jQuery Mobile](http://jquerymobile.com/)會使用ajax自動提交所有表單到指定頁面,並返回響應頁面,然後動態加載到DOM頁面當前頁面。因此,我不必手動重新創建整個過程,我只是在尋找JQuery Mobile代碼中預先存在的一些函數調用,它允許我提交表單,就像提交按鈕可能會執行的那樣。 –

+0

這個問題聽起來像它沒有通過ajax提交,但頁面正在重新加載。也許你可以試試'$('form')。submit()' – tjameson

+0

啊,對不起! –

0

我用的是這樣的:

<form action='myPage' method="get" id='myForm'> 
    <select name="category" data-native-menu="false" onchange="$(this.form).trigger('submit');"> 
     <option value="1">Option 1</option> 
     <option value="2">Option 2</option> 
    </select> 
</form>