標籤:非同步請求 container 檔案 query 資料顯示 this 音樂 and item
方法:
1.formSerilize() 用於序列化表單中的資料,並將其自動整理成適合AJAX非同步請求的URL地址格式。
2.clearForm() 清除表單中所有輸入值的內容。
3.restForm 重設表單中所有的欄位內容。即將所有表單中的欄位恢複到頁面載入時的預設值。
疑問:ajaxForm()與ajaxSubmit()的區別:
答案:$("#form1").ajaxForm(); 相當於以下兩行:
| 1234 |
$("#form1".submit)(function(){ $("#form1").ajaxSubmit();return false;}) |
也就是說ajaxFrom()會自動阻止表單提交。而ajaxSubmit()不會自動阻止表單提交,想阻止表單提交,要自己return false;
技巧1:如果希望表單提交完成後不跳轉,那麼一行簡單的代碼就能夠實現,幾乎與不使用表單提交是一樣的:
| 123 |
$("#MailForm").ajaxSubmit(function(message) { alert("表單提交已成功!");}); |
注意:ajaxForm()與ajaxForm()都可以沒有參數或者接受1個參數。該參數既可以是一個回呼函數,也可以是一個options對象。該對象功能非常強大,說明如下:
?
| 1234567891011 |
var options={ url:url, //form提交資料的地址 type:type, //form提交的方式(method:post/get) target:target, //伺服器返回的響應資料顯示在元素(Id)號確定 beforeSubmit:function(), //提交前執行的回呼函數 success:function(), //提交成功後執行的回呼函數 dataType:null, //伺服器返回資料類型 clearForm:true, //提交成功後是否清空表單中的欄位值 restForm:true, //提交成功後是否重設表單中的欄位值,即恢複到頁面載入時的狀態 timeout:6000 //佈建要求時間,超過該時間後,自動結束請求,單位(毫秒)。} |
例子:
頁面js代碼:
?
| 12345678910111213141516 |
<script src="jQuery.1.8.3.js" type="text/javascript"></script><script src="jQuery.Form.js" type="text/javascript"></script><script type="text/javascript">$(function () { $(":submit").click(function () { var options = { url: "indexAjax.aspx", target: "#div2", success: function () { alert("ajax請求成功"); } }; $("#form1").ajaxForm(options); })})</script> |
頁面HTML代碼:
?
| 12345678910 |
<div id="div1"><form id="form1" method="get" action="#"> <p>我的名字:<input type="text" name="name" value="請輸入內容" /></p> <p>我的偶像是:<input type="radio" name="Idol" value="劉德華" />劉德華 <input type="radio" name="Idol" value="張學友" />張學友</p> <p>我喜歡的音樂類型:<input type="checkbox" name="musictype" value="1.搖滾">搖滾 <input type="checkbox" name="musictype" value="2.輕鬆">輕柔 <input type="checkbox" name="musictype" value="3.爵士">爵士</p> <p><input type="submit" value="確認" /></p></form></div><div id="div2"></div> |
後台:indexAjax.aspx.cs代碼
| 123456789 |
protected void Page_Load(object sender, EventArgs e){ string strName = Request["name"]; string strIdol = Request["Idol"]; string strMusicType = Request["musictype"]; Response.Clear(); Response.Write("我的名字是:" + strName + "; 我的偶像是:" + strIdol + "; 我喜歡的音樂類型:" + strMusicType); Response.End();} |
自己做的demo:
<form action="" method="POST" name=‘formUpdate‘enctype="multipart/form-data" role="form" id="addActivity" >
<input type="submit" class="btn btn-info create-activity" value="儲存">
</form>
$(".create-activity").on("click",function(){
$("#addActivity").submit(function(){
$(this).ajaxSubmit({
url:"/activity/operate",
success:function(data){
alert(data[‘msg‘])
window.location.href="...."
return false;
},
resetForm:true,
dataType:‘json‘
})
return false;
})
}
使用jquery.form.js提交表單上傳檔案