1. 程式人生 > >服務端Json數據+js表單數據提交的 表單交互插件(base-form.js)

服務端Json數據+js表單數據提交的 表單交互插件(base-form.js)

json 舉例 () 編輯 表單 服務器 erro 問題 java

我們在做表單的查看、編輯裏涉及兩個點:

點1,提交Form表單到服務器,保存到數據庫

點2,頁面顯示Form表單裏的所有字段

如果表單的字段很多,這兩個點會有兩個問題:

1,提交Form時,如何少量代碼、快速獲取表單的所有數據?

2,頁面顯示Form表單時,如何自動給表單的所有字段自動賦值,而不要一個一個屬性地寫代碼?

針對這兩個問題,我有一個推薦的做法,下面以Demo舉例:

1)index.html或index.jsp裏寫一個form表單,引入jquery.js:

<srcript type="text/javascript" src="jquery.js"></script>

<srcript type="text/javascript" src="demo-form.js"></script>

<form id="demoForm">

<input type="text" name="username" class="formitem"/>

<input type="radio" name="usersex" class="formitem" value="1"/>男

<input type="radio" name="usersex" class="formitem" value="0"/>女

<input type="button" value="提交"/>

</form>

需要註意的有兩點:
1.1)所有表單字段要加一個class: formitem,因為base-form.js插件根據這個來匹配查找

1.2)name值要和服務端返回的Json數據屬性一樣

2)提交數據時的js代碼如下:

var formdata = $(‘#demoForm‘).serialize();

$.ajax({
type: "get",
data: formdata ,
url: url,

cache: false,
error: function (err) {


alert(err);
},
success: function (data) {
//在這裏處理返回的數據
if(data && data["code"]=="ok"){
var theData = data["data"];//這裏就是你需要的數據
}
}
});

3)從服務器獲取Json數據

$.ajax({
type: "get",
data: {"id":1},
url: url,

cache: false,
error: function (err) {
alert(err);
},
success: function (data) {
//在這裏處理返回的數據
if(data && data["code"]=="ok"){
var theData = data["data"];//這裏就是你需要的數據

renderForm(theData);
}

}
});

function renderForm(data){

//data的數據結構是:{"username":"淡然","usersex":1}

$("#demoForm").setForm(data);

}

//這樣頁面上就自動給上面的demoForm表單的所有字段賦值了

Ok,Demo示例完成,只需要短短的兩代碼,就能完成前端頁面表單字段數據的提交、渲染。

::::::

var formdata = $(‘#demoForm‘).serialize();

$("#demoForm").setForm(data);

附件: base-form.js

服務端Json數據+js表單數據提交的 表單交互插件(base-form.js)