之前項目中使用的表單提交方式
使用form()方法可以將提交事件脫離submit按鈕,綁定到任何事件中
. 代碼如下:
function addSubmit(){
$('#addForm').form('submit', {
url : _basePath + '/@Controller/@RequestMapping',
onSubmit : function() {
if(boolean){//放置能否提交的判斷條件
$.messager.show({
title:'提示',msg:'不符合保存條件',
showType:'fade',style:{right:'',bottom:''}
});
return false;//阻止表單提交
}
return $('#addForm').form('validate');//判斷required項是否全部有值
},
success : function(data) {
var obj = jQuery.parseJSON(data);//將返回的JSON轉化為所需對象(ResponseData)
if (!obj.success) {//判斷返回的ResponseData對象中標示狀態的屬性值
$.messager.show({
title:'提示',msg:'保存失敗',
showType:'fade',style:{right:'',bottom:''}
});
} else {
$.messager.show({
title:'提示',msg:'保存成功',
showType:'fade',style:{right:'',bottom:''}
});
$("#addWin").window("close");//關閉提交pwkk
query();//刷新結果集
}
}
});
}
今天在《鋒利的jQuery》中又讀到這樣一種提交方式,使用ajax封裝了表單內容用post提交
. 代碼如下:
$("#btn").click(function() {
$.get("get.php", {username:$("#username").val(), password:$("#password").val()}, function(data, textStatus) {//將表單中的數據逐條取出後封裝上傳
$("#target").html(data);//將返回值填充至頁面中
});
});
而後有一個簡化版,使用serialize()方法序列化
. 代碼如下:
$("#btn").click(function() {
$.get("get.php", $("#form").serialize(), function(data, textStatus) {//將表單中的數據逐條取出後封裝上傳
$("#target").html(data);//將返回值填充至頁面中
});
});
serialize()方法可以自動編碼,而且除表單之外的如checkbox等對象也可以使用其進行轉換
同時還有serializeArray()方法可以將元素序列化後返回數組形式的JSON對象,而非JSON字符串
即無需使用jQuery.parseJSON()方法進行轉換
返回值可直接使用類似$.each()等方法進行操作使用