| $(document).ready(function() { var options = { target: '#output1', // 從服務傳過來的資料顯示在這個div內部 也就是ajax局部重新整理 beforeSubmit: showRequest, // ajax提交之前的處理 success: showResponse // 處理之後的處理 }; $('#showDataForm').submit(function() { $(this).ajaxSubmit(options); return false; //非常重要,如果是false,則表明是不跳轉 //在本頁上處理,也就是ajax,如果是非false,則傳統的form跳轉。 }); }); function showResponse(responseText, statusText, xhr, $form) { alert(xhr.responseText+"=="+$form.attr("method")+'status: ' + statusText + '\n\nresponseText: \n' + responseText); //xhr:說明你可以用ajax來自己再次發出請求 //$form:是那個form對象,是一個jquery對象 //statusText:狀態,成功則為success //responseText,伺服器返回的是字串(當然包括html,不包括json) } function showRequest(formData, jqForm, options) { //formData是數組,就是各個input的索引值map數組 //通過這個方法來進行處理出來拼湊出來字串。 //formData:拼湊出來的form字串,比如name=hera&password, //其實就是各個表單中的input的索引值對, //如果加上method=XXXX,那也就是相當於ajax內的data。 var queryString = $.param(formData); alert(queryString+"======"+formData.length); for (var i=0; i < formData.length; i++) { alert(formData[i].value+"==============="+formData[i].name); } //jqForm,jquery form對象 var formElement = jqForm[0]; alert($(formElement).attr("method")); alert($(jqForm[0].name).attr("maxlength")); //非常重要,返回true則說明在提交ajax之前你驗證 //成功,則提交ajax form //如果驗證不成功,則返回非true,不提交 return true; } |