当前的代码是结合jquery使用,拓展了jquery的方法,可以直接通过$("#form1").formSerialize(data);来使用
给$.fn命名空间添加的方法,可以直接使用,这个是直接给jquery拓展的方法;
当前方法formdate如果有数据将会初始化表单中对应的文本框,或者是选择框;
如果fromdate为空,则是获取当前表单的所有数据,提交到后台;
$.fn.formSerialize = function (formdate) {
var element = $(this);
if (!!formdate) {
for (var key in formdate) {
var $id = element.find('#' + key);
var value = $.trim(formdate[key]).replace(/ /g, '');
var type = $id.attr('type');
if ($id.hasClass("select2-hidden-accessible")) {
type = "select";
}
switch (type) {
case "checkbox":
if (value == "true") {
$id.attr("checked", 'checked');
} else {
$id.removeAttr("checked");
}
break;
case "select":
$id.val(value).trigger("change");
break;
default:
$id.val(value);
break;
}
};
return false;
}
var postdata = {};
element.find('input,select,textarea').each(function (r) {
var $this = $(this);
var id = $this.attr('id');
var type = $this.attr('type');
switch (type) {
case "checkbox":
postdata[id] = $this.is(":checked");
break;
default:
var value = $this.val() == "" ? " " : $this.val();
if (!$.request("keyValue")) {
value = value.replace(/ /g, '');
}
postdata[id] = value;
break;
}
});
if ($('[name=__RequestVerificationToken]').length > 0) {
postdata["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
}
return postdata;
};
//下面的方法将会获取当前form中的所有数据提交到后台;
function submitForm() {
if (!$('#form1').formValid()) {
return false;
}
$.submitForm({
url: "/ArchivesManage/Manage/SubmitForm?keyValue=" + keyValue,
param: $("#form1").formSerialize(),
success: function () {
$.currentWindow().$("#gridList").trigger("reloadGrid");
}
})
}